类别具有“类型”(例如,三类类别)。每个类别可以有任意数量的视频。并且发布在类别为'1'类型的每个视频可以具有任意数量的图片。但对于发布在'2'和'3'类别类型中的视频,没有图片。Django:根据选择选项更改内联
models.py:
class Category(models.Model):
title = models.CharField()
CHOICES = (
('1','1'),
('2','2'),
('3','3'),
)
type = models.CharField(choices=CHOICES)
class Video(models.Model):
category = models.ForeignKey(Category)
class Picture(models.Model):
video = models.ForeignKey(Video)
title = models.Charfield()
admin.py:
class PictureInline(admin.TabularInline):
model = Picture
extra = 5
class VideoAdmin(admin.ModelAdmin):
inlines = [PictureInline,]
问题:
当我添加视频项目,并为其选择类别,我怎样才能根据什么类型o dinamically显示PictureInline f我为视频选择了哪个类别?
如果我在选择列表中选择第一个类别,我想成为ablle在管理员中看到PictureInline,如果我选择其他类别,我不想看到PictureInline。
可能吗?
PS:我发现https://github.com/digi604/django-smart-selects但没有找到内联
谢谢!现在我可以根据选定的类别动态显示/隐藏内联。但是我写道,内联的出现或消失取决于Category.type。任何变体升级这个伟大的解决方案?我想,我们需要JS函数内的一些查询来确定选择了哪种类型的类别。 – Friendka
上面的答案已经更新,包括必要的AJAX功能。 –
非常感谢,chrisdpratt! – Friendka