2024-03-29 14:01:09 发布
网友
我有一个外键模型,允许我引用任意数量的其他模型。因此,我可以使用管理界面添加和删除,但是如何以编程的方式执行等效的操作呢?你知道吗
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指定为外键。因此,每次加载表单时,它都会请求一个queryset(比如select*fromjson)。因此作为响应,它将接收模型对象(各个模型表中不同行的数量)。因此,您需要指定一个unicode方法,以便只在Json对象eem上显示object属性值。所以如果你写一个方法
class Json(models.Model): data = models.TextField() def __unicode__(self): return self.data
您将获得存储在模型对象中的数据,即数据。你知道吗
要使用这些模型,可以执行以下操作:
之后,您将得到一个Json对象和两个Dweet对象,它们都指向所述Json对象。这和你给我们展示的两个模型一样有趣。当然,如果您愿意,可以添加更多的Json对象,但是每个Dweet只能指向一个Json(不确定您的问题中是否有不同的要求)。你知道吗
它不清楚你的问题是什么提供的描述,但我会试图回答的基础上,我可以理解通过快照。你知道吗
实际上,一个选项并没有在下拉列表中列出两次,而是表示存储在Json表中的两个模型对象,即,您已经将Json指定为外键。因此,每次加载表单时,它都会请求一个queryset(比如select*fromjson)。因此作为响应,它将接收模型对象(各个模型表中不同行的数量)。因此,您需要指定一个unicode方法,以便只在Json对象eem上显示object属性值。所以如果你写一个方法
您将获得存储在模型对象中的数据,即数据。你知道吗
相关问题 更多 >
编程相关推荐