Django - ManyToManyField - 显示管理表单



我在学校开始学习 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)

管理员表单

然后,您应该实现__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

最新更新