Разница между моделями пользователей

Я сейчас изучаю 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'
    )
    # …
Вернуться на верх