我正在尝试为音乐家创建一个ModelForm模型,从这个模型中必须可以为每个音乐家选择一些专辑。由于专辑是反向外键,我认为ModelForm不会将专辑值保存到数据库中。有没有可能的方法可以让它工作
请帮助我,并预先感谢
下面是我模型:
class musicianForm(forms.ModelForm):
album=forms.ModelMultipleChoiceField(queryset=Musician.objects.all(),
widget=forms.widgets.CheckboxSelectMultiple())
class Meta:
model = Musician
fields = ('album','first_name','last_name','instrument')
models.py
from django.db import models
class Musician(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
instrument = models.CharField(max_length=100)
class Album(models.Model):
artist = models.ForeignKey(Musician, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
release_date = models.DateField()
num_stars = models.IntegerField()
admin.py
class musicianAdmin(admin.ModelAdmin):
form = musicianForm
1条答案
按热度按时间aoyhnmkz1#
最好的方法是覆盖窗体的
__init__
,如下所示:然后在
models.py
中,你需要创建另一个模型来连接艺术家和专辑,如果你不这样做,你只能添加一个艺术家到专辑(可能有合作,所以我们必须这样做):然后,要处理我们的数据并连接所有内容,请执行以下操作:
您的
create_album.html
文件将如下所示(没有什么花哨的):