我有三种模式:
class Section(models.Model):
name = models.CharField()
class ParamText(models.Model):
text = models.TextField()
class Param(models.Model):
name = models.CharField()
value = models.IntegerField()
texts = models.ManyToManyField(ParamText)
section = models.ForeignField(Section)
这是一个简单的例子。现在我想用具体的数据创建类:
class ObjectTemplate(models.Model):
params = models.ManyToManyField(Param)
但我想把这个模型具体的ParamText放在specyfic Param中。我的ObjectTemplate应该包含许多参数[Param](唯一会很棒),每个Param只有一个选定的ParamText。
如何实现这一目标?
答案 0 :(得分:0)
首先创建一个独特的parmas [parm]使用OneToOneField代替manytomany。
并访问特定密钥:每个对象都有一个id,因此您可以使用该
让p成为Param的对象
所以要从param中获取section id,你必须使用
p.section.id
这将返回一个包含对象的id(primarykey)的long int。
我认为以下内容将解决每个parma问题的一个parmatext
class Section(models.Model):
name = models.CharField()
class ParamText(models.Model):
text = models.TextField()
class Param(models.Model):
name = models.CharField()
value = models.IntegerField()
texts = models.OneToOneField(ParamText)
section = models.ForeignField(Section)