Я пишу пользовательское представление с taggit - я хочу предварительно заполнить поле формы редактирования объекта с тегами, в настоящее время назначенными этому объекту. Я бы хотел, чтобы формат был в этом, вроде, формате.
Вместо этого я получаю ['this', 'format'], и даже при использовании приведенного ниже кода я получаю формат списка с включенными одинарными кавычками
# Create an empty string, iterate through tags and add each one joined with ','
tags_on_set = ''
for each_tag in set.tags.names():
tags_on_set + ',' + each_tag
print(each_tag)
print(tags_on_set)
# prepopulate field with the results of above:
if set.tags:
set_edit.fields['tags'].widget.attrs['value'] = tags_on_set
Приведенные выше результаты приводят к печати: ['are', 'new', 'tags', 'the', 'these']. Я могу удалить эти значения в поле формы, добавить следующее: «вот, некоторые, новые, теги», и я получаю те же результаты, строку списка, хотя я пытаюсь распечатать каждый тег по отдельности. В основном, в приведенном выше коде: 'each_tag' == ['are', 'new', 'tags', 'the', 'these']
Я неправильно внедряю?
** forms.py
class SetEdit(forms.ModelForm):
class Meta():
model = Set
fields = ('title','tags',)
widgets = {
"title":forms.TextInput(attrs={'class':'borderless textinputclass editable',
'placeholder':''}),
"tags":taggit.TagWidget(attrs={'class':'textinputclass editable',
'placeholder':'',}),
}
labels = {
"title":None,
"tags":None,
}
реализация сохранения тегов на views.py
(Я попробовал set.tags.add () и получил те же результаты, только я получил накопительные теги, а не набор тегов, как и ожидалось)
if request.method == 'POST':
set_edit = SetEdit(data=request.POST,)
item_form = ItemForm(data=request.POST,user=user)
if set_edit.is_valid():
set.title = set_edit.cleaned_data['title']
set.tags.set(str(set_edit.cleaned_data['tags']))
set.save()
return HttpResponseRedirect(reverse('curate:set_detail', kwargs={'slug':set.slug}))