0

我有三个模型:

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 放在特定的 Param 中。我的 ObjectTemplate 应该包含许多 params[Param](唯一会很棒),每个 Param 只有一个选定的 ParamText。

如何实现这一点?

4

1 回答 1

0

首先要创建一个独特的 parmas[parm] 使用 OneToOneField 而不是 manytomany 。

并访问一个特定的键:每个对象都有一个 id,所以你可以使用它

设 p 为 Param 的对象

所以要从你必须使用的参数中获取部分 id

p.section.id

这将返回一个包含对象 id(主键)的 long int。

我认为以下内容将为每个帕尔马问题解决您的一个帕尔马文本

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)
于 2013-03-20T19:21:30.993 回答