Django模型:用于创建另一个模型的实例的集合/列表的字段类型

时间:2017-07-27 19:03:17

标签: python django django-models django-admin relation

考虑这三个模型:

class Statement(models.Model):
    statement_id = models.CharField(max_length=200)
    title = models.CharField(max_length=200)
    statement-keywords = ?
    statement-contexts = ?

class Keyword(models.Model):
    word = models.CharField(max_length=200)
    statement = models.ManyToManyField(Statement)
    def __str__(self):
        return self.word

@python_2_unicode_compatible
class Context(models.Model):
    context_word = models.CharField(max_length=200)
    keyword = models.ManyToManyField(Keyword)
    statement = models.ManyToManyField(Statement)
    def __str__(self):
       return self.context_word

每个Statement都应该有一组关联的关键字和上下文。我也主要在本网站的管理界面上工作,并希望确保有人可以在同一页面上输入关键字和上下文来更新或提交新页面。

如果我能使声明关键字包含所有Keywords的集合,并且statement_contexts将一组所有关联的关键字保存到该语句实例,并且语句上下文保持一个,那将是理想的与该语句关联的所有Context的集合。但是有两个问题出现在我面前:

  1. 因为Statement高于关键字和上下文,所以我不能将关键字和上下文作为多关系中的对象引用。如果我这样做,我会收到一条错误消息。如果我将关键字和上下文下面的语句移动,那么关键字和上下文都将无法创建引用语句(我会收到错误消息)。

  2. 我不知道是否有一个字段类型可以说"这个字段将包含一组对象,"或者替代。

1 个答案:

答案 0 :(得分:0)

您不需要其中任何一个字段。你已经拥有它们:它们与关键字和上下文的ManyToManyFields相反。