I read the docs and this post... Django - Foreign Key to User model
I followed what it said and I still cannot get it to work. When I try to run the migrations I get this error in the traceback...
django.db.utils.ProgrammingError: column "author_id" cannot be cast automatically to type integer HINT: You might need to specify "USING author_id::integer".
I just don't know how to go about fixing that error.
from django.db import models from django.contrib.auth.models import User # Create your models here. class BlogCategory(models.Model): '''model for categories''' title = models.CharField(max_length=30) description = models.CharField(max_length=100) class BlogPost(models.Model): '''a model for a blog post''' author = models.ForeignKey(User) date = models.DateField() title = models.CharField(max_length=100) post = models.TextField()
ForeignKey is a Django ORM field-to-column mapping for creating and working with relationships between tables in relational databases.
Referencing the User model Instead of referring to User directly, you should reference the user model using django. contrib. auth. get_user_model() .
What is ForeignKey in Django? ForeignKey is a Field (which represents a column in a database table), and it's used to create many-to-one relationships within tables. It's a standard practice in relational databases to connect data using ForeignKeys.
The only difference between these two is that ForeignKey field consists of on_delete option along with a model's class because it's used for many-to-one relationships while on the other hand, the OneToOneField, only carries out a one-to-one relationship and requires only the model's class.
Don't use the User
model directly.
From the documentation
Instead of referring to
User
directly, you should reference the user model usingdjango.contrib.auth.get_user_model()
When you define a foreign key or many-to-many relations to the user model, you should specify the custom model using the
AUTH_USER_MODEL
setting.
Example:
from django.conf import settings from django.db import models class Article(models.Model): author = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, )
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With