赞:
class Article (models.Model):
user = models.ForeignKey('User', related_name="articles")
def __init___(self):
self.user = 'Friendy'
答案 0 :(得分:0)
假设您要在user
字段中添加默认值,有两种方法:基于简单值的默认值,或者可以使用callable作为默认值。可以在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'
另一种方法是定义一个可返回用户ID的可调用对象,如下所示:
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'
我们返回ID而不是User实例的原因是因为docs中的这一行:
对于诸如ForeignKey之类的映射到模型实例的字段,默认值应该是它们引用的字段的值(除非设置了to_field,否则为pk)而不是模型实例。