繁体   English   中英

将模型添加到Django外键

[英]Adding Models to Django Foreign Key

我有一个带有外键的模型,允许我引用任意数量的其他模型。 因此,我可以使用管理界面进行添加和删除,但是如何以编程方式进行等效操作?

class Json(models.Model):
    data = models.TextField()

class Dweet(models.Model):
    name = models.CharField(max_length = 300)
    data = models.ForeignKey(Json)

在此处输入图片说明

为了使用这些模型,您可以执行以下操作:

>>> from app.models import Json, Dweet
>>> a = Json(data="asdf")
>>> a.save()
>>> b = Dweet(name="Test", data=a)
>>> b.save()
>>> c = Dweet(name="Test2", data=a)
>>> c.save()

之后,您将获得一个Json对象和两个Dweet对象,这两个对象均指向所述Json对象。 这和您展示给我们的两个模型一样有趣。 当然,您可以添加更多Json对象,但是每个Dweet只能指向一个Json(不确定您是否在询问其他问题)。

通过提供的描述尚不清楚您的问题是什么,但是我会根据我可以通过快照理解的内容来尝试回答。

实际上,一个选项没有在下拉列表中列出两次,而是代表了存储在Json表中的两个模型对象,即,由于您已将Json指定为外键。 因此,每次加载表单时,它都会请求一个查询集(例如,来自Json的select *)。 因此,作为响应,它将接收模型对象(相应模型表中不同行的数量)。 因此,您需要指定unicode ()方法,以便仅在Json Object的位置显示对象属性值。 因此,如果您编写类似

class Json(models.Model):
    data = models.TextField()

    def __unicode__(self):
    return self.data   

您将获得存储在Model对象中的数据,即data

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM