Django-ManyToManyField-显示管理表单

时间:2019-12-23 21:43:16

标签: django

我开始在学校学习Django,我对两个表之间的许多关系有疑问。

一部电影可以有多个评论,管理表单仅对此记录同时突出显示了两个评论,但是我希望看到两个内容,而不是所有评论ID的列表。

感谢您的帮助。

class Reviews(models.Model):
     content = models.TextField(null=True)
     url = models.TextField(null=True)

     class Meta:
         verbose_name = "Critiques"
         ordering = ['content']

class Movies(models.Model):
    title = models.CharField(max_length=45)
    release_date = models.DateField(blank=True, null=True)
    categories = models.ForeignKey(Categories, on_delete=models.CASCADE)
    image = models.ImageField(upload_to='bms/photos', null=True)
    synopsis = models.TextField(blank=True, null=True)
    duration = models.IntegerField(blank=True, null=True)
    is_available_in_theaters = models.BooleanField(default=0)
    reviews_list = models.ManyToManyField(Reviews)

Admin form

1 个答案:

答案 0 :(得分:0)

然后,您应实施__str__方法进行审核:

class Reviews(models.Model):
    content = models.TextField(null=True)
    url = models.TextField(null=True)

    def __str__(self):
        return self.content or ''

    class Meta:
        verbose_name = "Critiques"
         ordering = ['content']

此处使用or ''的原因是,如果contentNULL / None,则它将返回空字符串,因为应该__str__总是返回一个字符串。

  

注意:通常,Django模型的名称为单数,因此使用Review而不是 Reviews