[英]django - django-taggit form
我對 django taggit 應用程序不太熟悉,但看起來如果你想使用應用程序使用的相同字段和小部件設置,你可以從 taggit.forms ( https://github.com/alex/django-taggit/blob/master/taggit/forms.py
):
你的models.py:
from django.db import models
from taggit.managers import TaggableManager
class Food(models.Model):
name = models.CharField(max_length=20)
tags = TaggableManager()
你的forms.py
from taggit.forms import *
class MyForm(forms.Form):
name = forms.CharField()
m_tags = TagField()
TagField 將使用 taggit 應用程序中的 utils.py 中的 parse_tags 方法返回處理后的輸入。 返回看起來是一個清理過的列表(set(words))
你的意見.py
if form.is_valid():
name = form.cleaned_data['name']
m_tags = form.cleaned_data['m_tags']
object = Food(name=name)
object.save()
for m_tag in m_tags:
object.tags.add(m_tag)
return HttpResponseRedirect('/thanks/')
我無法評論使用過的/“綠色勾選”答案。 但我會改變塊
for m_tag in m_tags:
object.tags.add(m_tag)
到
object.tags.add(*m_tags)
請參閱此處的說明: https : //github.com/alex/django-taggit/blob/master/docs/forms.txt
如果在保存表單時使用commit=False
選項,則需要在保存對象后在表單上調用save_m2m()
,就像對具有普通多對多字段的表單一樣:
if request.method == "POST":
form = MyFormClass(request.POST)
if form.is_valid():
obj = form.save(commit=False)
obj.user = request.user
obj.save()
# Without this next line the tags won't be saved.
form.save_m2m()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.