重複の可能性:
ManyToManyField を Textarea としてレンダリングするときの Django の「値のリストを入力してください」フォーム エラー
入力フィールドにpython,django,ajax
これらのデータがあります。artist
エラーが発生してEnter a list of values.
います。これらのデータを保存するのを手伝ってくれませんか? ありがとう
モデル
artist = models.ManyToManyField(ApiArtist, blank=True)
フォームと検証
class ApiSongForm(ModelForm):
class Meta:
model = ApiSong
widgets = {
'artist': forms.TextInput(),
}
def clean_artist(self):
data = self.cleaned_data
artist_list = data.get('artist', None)
if artist_list is not None:
for artist_name in artist_list.split(','):
artist = ApiArtist(name=artist_name).save()
return artist_list
編集
これで、提供されたリンクからコードのコピー/貼り付けを変更しました。しかし、私は得てCannot resolve keyword 'artist' into field. Choices are: apisong, id, name
います。エラーメッセージ。これが私のApiArtist と SongModelです。ありがとう
class ModelCommaSeparatedChoiceField(ModelMultipleChoiceField):
widget = forms.TextInput
def clean(self, value):
if value is not None:
print value
value = [item.strip() for item in value.split(",")] # remove padding
return super(ModelCommaSeparatedChoiceField, self).clean(value)
class ApiSongForm(ModelForm):
artist = ModelCommaSeparatedChoiceField(
required=False, queryset=ApiArtist.objects.filter(), to_field_name='artist')
class Meta:
model = ApiSong