向Django外键添加模型

2024-03-29 14:01:09 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

enter image description here


Tags: name模型jsondata数量model界面models
2条回答

要使用这些模型,可以执行以下操作:

>>> 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指定为外键。因此,每次加载表单时,它都会请求一个queryset(比如select*fromjson)。因此作为响应,它将接收模型对象(各个模型表中不同行的数量)。因此,您需要指定一个unicode方法,以便只在Json对象eem上显示object属性值。所以如果你写一个方法

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

    def __unicode__(self):
    return self.data   

您将获得存储在模型对象中的数据,即数据。你知道吗

相关问题 更多 >