首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django - django-taggit表单

django - django-taggit表单
EN

Stack Overflow用户
提问于 2011-03-19 10:48:22
回答 3查看 6.4K关注 0票数 9

我想使用django-taggit (click here )。文档( click here)谈到了使用ModelForm生成表单,但是我已经有了我想要使用的表单。

假设我有这样的东西:

forms.py

代码语言:javascript
复制
class MyForm(forms.Form):
    ......
    tags = forms.CharField(max_length=200, widget=forms.Textarea)

如何保存来自tags字段的标记?我的views.py里有什么?一个真正的例子将是真正的感谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-19 18:23:23

我不太熟悉django taggit应用程序,但看起来如果您想使用该应用程序使用的相同字段和小部件设置,您可以从taggit.forms (https://github.com/alex/django-taggit/blob/master/taggit/forms.py)导入它们:

您的models.py:

代码语言:javascript
复制
from django.db import models

from taggit.managers import TaggableManager

class Food(models.Model):
    name = models.CharField(max_length=20)

    tags = TaggableManager()

你的forms.py

代码语言:javascript
复制
from taggit.forms import *

class MyForm(forms.Form):
    name = forms.CharField()
    m_tags = TagField()

TagField将使用taggit应用程序中的utils.py中的parse_tags方法返回处理后的输入。返回看起来是一个清理过的列表(set(Word))

你的views.py

代码语言:javascript
复制
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/')
票数 13
EN

Stack Overflow用户

发布于 2011-12-23 09:34:37

我不能评论二手/“绿色勾选”的答案。但我会换个区块

代码语言:javascript
复制
for m_tag in m_tags:
    object.tags.add(m_tag)

代码语言:javascript
复制
object.tags.add(*m_tags)
票数 7
EN

Stack Overflow用户

发布于 2012-04-07 23:44:02

请参阅此处的说明:https://github.com/alex/django-taggit/blob/master/docs/forms.txt

如果在保存表单时使用commit=False选项,则需要在保存对象后在表单上调用save_m2m(),就像对具有普通多对多字段的表单一样::

代码语言:javascript
复制
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()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5359714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档