【发布时间】:2023-03-15 18:43:01
【问题描述】:
我制作了一个表单,其中有一个名为艺术家的多项选择字段,我从我的数据库中获取了该字段,在添加歌曲时,用户可以选择多个艺术家并保存歌曲。
艺术家是 Django 模型中的 ManyToManyField。
models.py
class Artists(models.Model):
""" Fields for storing Artists Data """
artist_name = models.CharField(max_length = 50, blank = False)
dob = models.DateField()
bio = models.TextField(max_length = 150)
def __str__(self):
return self.artist_name
class Songs(models.Model):
""" Fields for storing song data """
song_name = models.CharField(max_length = 30, blank = False)
genre = models.CharField(max_length = 30, blank = False)
artist = models.ManyToManyField(Artists)
release_date = models.DateField()
forms.py
class Song_input(forms.Form):
queryset = Artists.objects.only('artist_name')
OPTIONS = []
for i in queryset:
s = []
s = [i, i]
OPTIONS.append(s)
artist_name = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple,choices=OPTIONS)
song_name = forms.CharField()
genre = forms.CharField()
release_date = forms.DateField(widget=DateInput)
现在我想获取从表单中选择的所有值并保存到我的数据库中。这里的artist_name 可能有多个值。
我尝试使用 add() 和 create() 方法,但不知道如何将一个字段 (artist_name) 具有多个数据的所有数据添加到我的数据库中。
【问题讨论】:
-
请使用
ModelForm。 -
谢谢我现在使用它,但我可以将我的自定义小部件与 ModelForm 一起使用吗?
-
可以,在answer中指定,您可以在
Meta中指定widgets。
标签: django database forms model