[Django]-Foreignkey (user) in models

-15đź‘Ť

âś…

I do not know the “settings.AUTH_USER_MODEL” approach but a well-known approach and commonly used is the “Auth.User” model. Something like this on your end.

from django.contrib.auth.models import User

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()

170đź‘Ť

Don’t use the User model directly.

From the documentation

Instead of referring to User directly, you should reference the user
model using django.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,
    )
👤Andrew E

4đź‘Ť

If you created a custom User model, you would use setting.AUTH_USER_MODEL, if not you can go ahead an use User model

Referencing Django User model

👤Jermaine

0đź‘Ť

the column “author_id” doesn’t exist, looks like is the same problem from here : Django suffix ForeignKey field with _id , so to avoid this traceback you may use :

author = models.ForeignKey(User, db_column="user")
👤Sérgio

Leave a comment