我一直在Django文档中寻找我的问题,但没有找到解决方案。我的问题是在Api Pannel中,我无法从“ActorsAndDirectors”类插入更多对象到“Movie”类的“cast”字段中。我只能插入一个。如何转换cast字段,以便我可以从“ActorsAndDirectors”类插入多个对象到“Movie”类中
这是密码
class ActorsAndDirectors(models.Model):
name = models.CharField(max_length=32, blank=False, null=False)
surname = models.CharField(max_length=32, blank=False, null=False)
role = models.CharField(max_length=11, blank=False, null=False)
def __str__(self):
return f"{self.name} {self.surname}"
class Movie(models.Model):
title = models.CharField(max_length=50, blank=False, null=False, unique=True)
description = models.TextField(max_length=400)
cast = models.ForeignKey(ActorsAndDirectors, on_delete=models.CASCADE)
premiere = models.DateField()
updated = models.DateTimeField()
slug = models.SlugField()
def number_of_ratings(self):
return Rating.objects.filter(movie=self).count()
def avg_rating(self):
score = 0
ratings = Rating.objects.filter(movie=self)
for rating in ratings:
score +=rating.stars
if len(ratings) > 0:
return score/len(ratings)
else:
return 0
def __str__(self):
return f"{self.title}, ({self.premiere})"
`
我在Django文档中查找了一些列表字段,但是没有好的结果。我在寻找如何转换字段的帮助,或者可能是我的问题的一些其他解释
1条答案
按热度按时间o2rvlv0m1#
你正在寻找的是一个Many to Many关系。在那里许多演员和导演可以参与许多不同的电影。
我想补充一下,当查询数据库时,查找字符串的速度比较慢。也许你应该为你的ActorsAndDirectors角色字段选中这个choices选项。
如果您稍后尝试筛选导演或演员,这会很有帮助。另一个选项是Table和FK。