假设我想模拟以下内容:
有文本,可以有很多 引用,每个引用是一部分 文字。最重要的是,每个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)
答案 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()