首页 > 解决方案 > 在具有外键关系的模型中创建对象

问题描述

我想Something model使用这个在 python manage.py shell 中 创建一个条目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'

标签: djangodjango-models

解决方案


首先,你必须使用 double under bar__才能使用 django 的模型关系表达式。

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

其次,创建对象时不能使用双下杠关系表达式。
如果你想创建一个相关的对象,你必须一步一步地创建。关注@Nicolas Appriou 的回答


推荐阅读