提问人:O Tal Antiquado 提问时间:11/12/2023 更新时间:11/12/2023 访问量:29
Django 中角色的电影演员表
Movie cast with characters in Django
问:
所以,我正在用 Django 做经典电影应用程序(我喜欢这个框架!),我觉得我撞到了树桩。
所以,我有我的电影模型:
class Movie(models.Model):
TitlePRT = models.CharField(max_length=100)
TitleORG = models.CharField(max_length=100)
TitleAlt = models.CharField(max_length=100)
Poster = models.ImageField(upload_to=posterPath, max_length=100)
Synopsis = models.TextField()
Year = models.IntegerField()
DubStudio = models.ForeignKey("Studio", on_delete=models.CASCADE)
Trivia = models.TextField()
CreatedBy = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="+")
CreatedAt = models.DateTimeField(auto_now=False, auto_now_add=True)
Modifiedby = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="+")
ModifiedAt = models.DateTimeField(auto_now=True, auto_now_add=False)
我的 Actor 模型:
class Actor(models.Model):
Bio = models.TextField()
Name = models.CharField(max_length=50)
FullName = models.CharField(max_length=50)
DateOfBirth = models.DateField()
Country = models.TextField(max_length=100)
Nationality = models.TextField(max_length=50)
Debut = models.ForeignKey("Movie", on_delete=models.CASCADE)
CreatedBy = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="+")
CreatedAt = models.DateTimeField(auto_now=False, auto_now_add=True)
ModifiedBy = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="+")
ModifiedAt = models.DateTimeField(auto_now=True, auto_now_add=False)
ClaimedBy = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="+")
最后,我的 Cast 模型:
class Cast(models.Model):
Movie = models.ForeignKey("Movie", on_delete=models.CASCADE)
Actor = models.ForeignKey("Actor", on_delete=models.CASCADE)
Character = models.TextField(max_length=50)
Observations = models.TextField(max_length=50)
现在,我可以通过 Django 管理员添加内容,但这很尴尬,因为我无法在电影表单中添加演员表。我必须去演员表,一个接一个地去一个角色
我已经搜索了有关自定义管理表单之类的内容,但我有点困惑。
是否可以在“电影”表单中创建一个表单字段来添加演员表,最好包含三个元素:一个可以在其中选择演员,一个文本字段用于键入角色,另一个文本字段用于添加一些观察?
或者有没有一种不那么复杂的方法来组织这些数据?
答:
1赞
willeM_ Van Onsem
11/12/2023
#1
是的,你可以创建一个 TabularInline
[Django-doc]:Cast
class CastInline(admin.TabularInline):
model = Cast
然后将其注入到 for 中:ModelAdmin
Movie
class MovieAdmin(admin.ModelAdmin):
# …
inlines = [CastInline]
评论
1赞
O Tal Antiquado
11/12/2023
难以置信!正是我需要的!谢谢!
评论