Django onetomany中的关系属性

Django onetomany中的关系属性,django,foreign-key-relationship,Django,Foreign Key Relationship,假设我想对以下内容进行建模: 有些文本可以有多个引号,每个引号都是一个文本的一部分。最重要的是,每个引用都位于一个文本的特定页面上 我发现有一个适用于许多字段的关系模型,它允许我向关系中添加属性(比如定义页面的选项)。这在一对一的关系上也可能吗?我如何在django建模 这就是我目前所拥有的 class Text(models.Model): title = models.CharField(max_length=100) class Quote(models.Model):

假设我想对以下内容进行建模:

有些文本可以有多个引号,每个引号都是一个文本的一部分。最重要的是,每个引用都位于一个文本的特定页面上

我发现有一个适用于许多字段的关系模型,它允许我向关系中添加属性(比如定义页面的选项)。这在一对一的关系上也可能吗?我如何在django建模

这就是我目前所拥有的

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

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

您应该创建一个
页面
对象,该对象的外键指向
文本
,然后
引用
外键应该指向一个
页面
对象

比如:

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)
您可以找到遍历页面关系的给定
Quote
Text
实例:

quote.page.text

您应该创建一个
页面
对象,该对象的外键指向
文本
,然后
引用
外键应该指向一个
页面
对象

比如:

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)
您可以找到遍历页面关系的给定
Quote
Text
实例:

quote.page.text

您应该创建一个
页面
对象,该对象的外键指向
文本
,然后
引用
外键应该指向一个
页面
对象

比如:

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)
您可以找到遍历页面关系的给定
Quote
Text
实例:

quote.page.text

您应该创建一个
页面
对象,该对象的外键指向
文本
,然后
引用
外键应该指向一个
页面
对象

比如:

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)
您可以找到遍历页面关系的给定
Quote
Text
实例:

quote.page.text
这个怎么样

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()
这个怎么样

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()
这个怎么样

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()
这个怎么样

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()

我选择@Germanos answer作为接受,对我来说,页面在逻辑上没有引用的属性。谢谢。最后我完成了这项工作,即在报价模型中添加了一个页面属性。另一个问题是无法在django admin中编辑模型。当我提出进一步的问题/警告时,我会让我们知道,很高兴您解决了您的问题。但是,通过这种方式,您可能会得到一个引用,该引用属于文本中不存在的页面。至少,这不是关系强制的约束。至于管理员,你可能想看看我选择@Germanos answer作为已接受的答案,至于我,页面在逻辑上没有引用的属性。谢谢。最后我完成了这项工作,即在报价模型中添加了一个页面属性。另一个问题是无法在django admin中编辑模型。当我提出进一步的问题/警告时,我会让我们知道,很高兴您解决了您的问题。但是,通过这种方式,您可能会得到一个引用,该引用属于文本中不存在的页面。至少,这不是关系强制的约束。至于管理员,你可能想看看我选择@Germanos answer作为已接受的答案,至于我,页面在逻辑上没有引用的属性。谢谢。最后我完成了这项工作,即在报价模型中添加了一个页面属性。另一个问题是无法在django admin中编辑模型。当我提出进一步的问题/警告时,我会让我们知道,很高兴您解决了您的问题。但是,通过这种方式,您可能会得到一个引用,该引用属于文本中不存在的页面。至少,这不是关系强制的约束。至于管理员,你可能想看看我选择@Germanos answer作为已接受的答案,至于我,页面在逻辑上没有引用的属性。谢谢。最后我完成了这项工作,即在报价模型中添加了一个页面属性。另一个问题是无法在django admin中编辑模型。当我提出进一步的问题/警告时,我会让我们知道,很高兴您解决了您的问题。但是,通过这种方式,您可能会得到一个引用,该引用属于文本中不存在的页面。至少,这不是关系强制的约束。至于管理员,你可能想看看