Разница между моделями пользователей
Я сейчас изучаю django, смотрю туториалы. Вопросы такие: В чем разница между использованием:
from django.contrib.auth import get_user_model User = get_user_model()
User = get_user_model()
и
from django.contrib.auth.models import User
Я видел их оба, и оба они используются в модели с ForeignKey, но я не знаю разницы между ними. модель, например:
author = models.ForeignKey(
User,
on_delete=models.CASCADE,
related_name='posts'
)
title = models.CharField(max_length=100)
text = models.TextField()```
The get_user_model() function [Django-doc] will return a reference to the class that you set in the AUTH_USER_MODEL setting [Django-doc]. By default this is 'auth.User', so the model of the django.contrib.auth.models module, but you can specify a different user model.
Однако лучше использовать settings.AUTH_USER_MODEL для ссылки на модель пользователя, чем User или get_user_model(), как указано в для ссылки на User модель в разделе документации , таким образом, вы работаете с:
from django.conf import settings
class Post(models.Model):
author = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name='posts'
)
# …