Django模型不对称关系

时间:2016-07-22 09:14:18

标签: django django-models

使用以下Django模型:

class Author(models.Model):
    name = models.CharField(max_length=30)
    bestbookaccordingtome=models.????(Author,null=True, blank=True, default = None)

class Book(models.Model):
    title = models.CharField(max_length=100)
    authors = models.OnetoOneField(Author)

我希望每本书都有一个作者(仅限)的经典关系。

但我也希望能够为作者分配一本精选的书(例如我最喜欢的作者之书)。

我试了一把外键,但是django不喜欢它。 任何python干净的方式来做它?

1 个答案:

答案 0 :(得分:0)

您需要的是ManyToManyField

class Author(models.Model):
    name = models.CharField(max_length=30)
    bestbookaccordingtome = models.ManyToManyField('self', symmetrical=False, related_name='best_book_according_to_me')

此外,如果您需要在n-m模型中指定额外字段,则可以使用through来指明模型的名称。

希望它有所帮助!