在具有外键关系的模型中创建对象



我想在python manage.py shell中的Something model中创建一个条目Someting.objects.create(discussion_title="General", user_username="admin", content="Hello")

模型示例

class Discussion(models.Model):
title = models.CharField(max_length=255, unique=True, blank=False,)
users = models.ManyToManyField(User, blank=True, )

class Something(models.Model):
user = models.ForeignKey(User,
on_delete=models.CASCADE)
discussion = models.ForeignKey(Discussion, on_delete=models.CASCADE)
timestamp = models.DateTimeField(auto_now_add=True)
content = models.TextField(unique=False, blank=False)

我收到这个错误TypeError: Something() got an unexpected keyword argument 'discussion_title'

首先,您必须在条__下使用double来使用django的模型关系表达式。

Someting.objects.get(discussion__title="General", user__username="admin", content="Hello")

其次,在创建对象时不能使用双底条关系表达式
如果要创建一个相关对象,则必须在中逐步创建。关注@Nicolas Appriou的回答

您的Something模型没有discussion_title字段。您需要为此创建一个讨论实例。

此模型也没有user_username模型。

discussion = Discussion.objects.create(title="Foobar")
discussion.users.add(User.objects.create(username="Ham")
Something.objects.create(
discussion=discussion,
)

最新更新