Предполагая, что вы хотите добавить значение по умолчанию в поле user
, существует два способа: либо простое значение на основе значений, либо вы можете использовать вызываемое по умолчанию. Документация для этого может быть найдена в https://docs.djangoproject.com/en/2.2/ref/models/fields/#default
Если вы хотите использовать по умолчанию определенного пользователя, вам нужно знать id
пользователя, например:
class Article (models.Model):
user = models.ForeignKey(
'User',
related_name="articles",
default=1,
help_text="There better be a user with an id of 1 or this will not work",
)
def __init___(self):
self.user = 'Friendy'
Другой способ - определить вызываемый объект, который возвращает идентификатор пользователя, например:
def get_first_user():
user = User.objects.first()
if user:
return user.pk
return None
class Article (models.Model):
user = models.ForeignKey(
'User',
related_name="articles",
default=get_first_user,
help_text="There better be a user with an id of 1 or this will not work",
)
def __init___(self):
self.user = 'Friendy'
Причина, по которой мы возвращаем идентификатор, а не экземпляр пользователя, заключается в следующей строке в документации:
Для таких полей, как ForeignKey, которые отображаются на экземпляры модели, значения по умолчанию должны быть значением поля, на которое они ссылаются (pk, если не задано to_field), а не экземплярами модели.