Я пишу приложение для веб-блогов в Django.У меня сейчас 2 модели Post и PostMeta.Post - это стандартная модель стиля записей с такими полями, как автор, заголовок, контент и т. Д. Она также содержит одно поле многие-ко-многим, называемое post_meta, которое связано с моей второй моделью PostMeta.PostMeta - это простая модель имя / значение с двумя полями, meta_key и meta_value.
Я пытаюсь настроить форму модели Post в интерфейсе администратора, чтобы она была более интуитивной.В частности, я хочу абстрагироваться от создания ассоциаций PostMeta, а не видеть неинтуитивное поле выбора, которое по умолчанию отображается для администратора.Вместо этого я хочу показать текстовое поле вместо этого поля выбора, где пользователь может ввести разделенный запятыми список тегов, связанных с сообщением.Когда форма отправлена, я хочу разделить ввод поля тега на отдельные теги и сохранить каждый как PostMeta, где meta_key будет установлен в «TAG», а meta_value будет одной из строк, разделенных запятыми.У меня есть, кажется, я не могу получить его, чтобы сохранить правильно.Я не уверен, есть ли проблема с моим синтаксисом (я относительно новичок в Python) или есть что-то еще, что мне нужно сделать, что я мог пропустить.Вот фрагмент моего admin.py:
class PostAdminForm(forms.ModelForm):
tags = forms.CharField(max_length=200)
class Meta:
model = Post
def save(self, commit=True):
model = super(PostAdminForm, self).save(commit=False)
if commit:
model.save()
splitTags = self.cleaned_data['tags'].split(',')
for tag in splitTags:
pm = PostMeta(meta_key="TAG", meta_value=tag)
pm.save()
model.post_meta.add(pm)
return model
class PostAdmin(admin.ModelAdmin):
model = Post
form = PostAdminForm
admin.site.register(Post, PostAdmin)
Любые советы или предложения о том, как сделать эту работу, были бы великолепны.Все еще учусь: \