Python 呈现时捕获到类型错误:';边界域';对象是不可编辑的

Python 呈现时捕获到类型错误:';边界域';对象是不可编辑的,python,django,django-forms,django-views,Python,Django,Django Forms,Django Views,我试图将标记列表显示为tag.name(而不是列表)。但是,当我尝试在列表上运行for循环时,它会抛出“呈现时捕获的TypeError:'BoundField'对象不可编辑。” {%for form.tags%}{{tag.name}{%endfor%} 遍历.all将加载页面,但不显示标记字段 <dd>{% for tag in form.tags.all %}{{tag.name}}{% endfor %}</dd> class Profile(mod

我试图将标记列表显示为tag.name(而不是列表)。但是,当我尝试在列表上运行for循环时,它会抛出“呈现时捕获的TypeError:'BoundField'对象不可编辑。”

{%for form.tags%}{{tag.name}{%endfor%}
遍历.all将加载页面,但不显示标记字段

  <dd>{% for tag in form.tags.all %}{{tag.name}}{% endfor %}</dd>



  class Profile(models.Model):

    user = models.ForeignKey(User)

  tagging.register(Profile)




form = ProfileForm(initial={
        "fullname":fullname,
        "location":request.user.get_profile().location,
        "website":request.user.get_profile().website,
        "twitter_account":request.user.get_profile().twitter_account,
        "email":request.user.email,
        "bio":request.user.get_profile().bio,
        "tags":request.user.get_profile().tags
    })



    class ProfileForm(forms.Form):
        fullname = forms.CharField(
             label=_("Full Name"),
             widget=forms.TextInput(),
                            required=False)

        location = forms.CharField(
             label=_("Location"),
             widget=forms.TextInput(),
                            required=False)

        website = forms.CharField(
             label=_("Website"),
             widget=forms.TextInput(),
                            required=False)

        twitter_account = forms.CharField(
             label=_("Twitter"),
             widget=forms.TextInput(),
                            required=False)

        bio = forms.CharField(
             label=_("Bio"),
             widget=forms.Textarea(),
                            required=False)

        tags = forms.CharField(
    label=_("Keywords"),
    widget=forms.Textarea(),
                            required=False)           
{%for form.tags.all%}{{tag.name}{%endfor%}
类配置文件(models.Model):
user=models.ForeignKey(用户)
标记.寄存器(配置文件)
表单=配置文件表单(首字母)={
“全名”:全名,
“位置”:request.user.get_profile().location,
“网站”:request.user.get_profile()网站,
“twitter\u帐户”:request.user.get\u profile().twitter\u帐户,
“电子邮件”:request.user.email,
“bio”:request.user.get_profile().bio,
“标记”:request.user.get_profile().tags
})
类配置文件表单(forms.Form):
fullname=forms.CharField(
label=uu(“全名”),
widget=forms.TextInput(),
必需=错误)
位置=forms.CharField(
label=uu(“位置”),
widget=forms.TextInput(),
必需=错误)
网站=forms.CharField(
label=uuu(“网站”),
widget=forms.TextInput(),
必需=错误)
twitter_account=forms.CharField(
label=uU9;(“推特”),
widget=forms.TextInput(),
必需=错误)
bio=forms.CharField(
label=uu(“Bio”),
widget=forms.Textarea(),
必需=错误)
tags=forms.CharField(
label=uU9;(“关键字”),
widget=forms.Textarea(),
必需=错误)

非常感谢

form.tags
在表单中定义为带有
TextArea
小部件的
CharField
。因此,当您访问
form.tags
时,您访问的是该字段,而不是底层的
tags
model属性(我假设它是某种m2m)

{% for tag in form.tags.choices %}{{tag.1}}{% endfor %}
如果没有看到您的模型,就不可能准确地告诉您如何实现您想要做的事情,但是一般的想法是您需要迭代标记对象,而不是表单字段。

来自


模板:

{% for tag in blogpost.get_tags %}
  <a href="/blog/tag/{{tag}}" alt="{{tag}}" title="{{tag}}">{{tag}}</a>
{%endfor%}

您是否尝试过在django shell中加载ProfileForm并查看
form.tags.all()
返回的内容?我没有。我对django shell不是很有经验。所以从表单导入ProfileForm。。。然后?
从forms导入ProfileForm
然后
form=ProfileForm(initial={blahblahblah…})
然后
form.tags.all()
并查看它的输出>>form=ProfileForm(initial={'fullname':'emile',tags':{'shoe','cheese'}>>form tags.all()回溯(最近一次调用):File“”,第1行,在AttributeError中:“ProfileForm”对象没有属性“tags”,还有最后一个我忘了的地方,就是我正在使用Django标记应用程序:它实际上以与.all&{tag.name}}相同的方式呈现。这是使用Django标记应用程序,所以这可能是有帮助的部分-
{% for tag in blogpost.get_tags %}
  <a href="/blog/tag/{{tag}}" alt="{{tag}}" title="{{tag}}">{{tag}}</a>
{%endfor%}
from django.db import models
from tagging.fields import TagField
from tagging.models import Tag

class BlogPost(models.Model):

    title = models.CharField(max_length=30)
    body = models.TextField()
    date_posted = models.DateField(auto_now_add=True)
    tags = TagField()

    def set_tags(self, tags):
        Tag.objects.update_tags(self, tags)

    def get_tags(self, tags):
        return Tag.objects.get_for_object(self)