onetomany中的关系属性

时间:2014-03-12 11:25:55

标签: django foreign-key-relationship

假设我想模拟以下内容:

文本,可以有很多 引用,每个引用一部分 文字。最重要的是,每个Quote都在一个Text的特定 Page 上。

我发现ManyToMany字段有一个through关系模型,这样我就可以在关系中添加属性(比如定义页面的选项)。在OneToMany-Relationship上这也是可能的吗?我怎么能在django中建模?

这就是我目前所拥有的

class Text(models.Model):
    title = models.CharField(max_length=100)

class Quote(models.Model):
    text = models.TextField()
    source = models.ForeignKey(Text)

2 个答案:

答案 0 :(得分:2)

您应该使用ForeignKey创建一个Page对象Text,然后source的{​​{1}} ForeignKey应该定位Quote个对象。

类似的东西:

Page

您可以找到遍历网页关系的给定class Text(models.Model): title = models.CharField(max_length=100) class Page(models.Model): number = models.IntegerField() text = models.ForeignKey(Text) class Quote(models.Model): text = models.TextField() page = models.ForeignKey(Page) 的{​​{1}}个实例:

Text

答案 1 :(得分:1)

这个怎么样?

class Quote(models.Model):
    text = models.TextField()
    page = models.IntegerField()

class Text(models.Model):
    title = models.CharField(max_length=100)
    quote = models.ManyToMany(Quote, blank=True, null=True)

样本用法:

t = Text.objects.create('My Text')
q = Quote.objects.create('Quote 1', 2)
q2 = Quote.objects.create('Quote 2', 2)
t.quote_set.add(q)
t.quote_set.add(q2)
t.save()