Ошибка TypeError при рендеринге: объект BoundField не повторяется - PullRequest
4 голосов
/ 12 ноября 2010

Я пытаюсь отобразить список тегов как tag.name (вместо списка). Однако, когда я пытаюсь запустить цикл for над списком, он выдает "Caught TypeError при рендеринге: объект BoundField не повторяется."

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

Итерация по .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)           

Заранее большое спасибо!

Ответы [ 3 ]

1 голос
/ 12 ноября 2010

Код из Howto Post


Шаблон:
{% 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)      
0 голосов
/ 12 ноября 2010

form.tags определяется в вашей форме как CharField с виджетом TextArea. Поэтому, когда вы получаете доступ к form.tags, вы получаете доступ к этому полю, а не к базовому атрибуту tags модели (который, как я полагаю, является своего рода m2m).

Не видя своих моделей, невозможно точно сказать, как добиться того, что вы пытаетесь сделать, но общая идея заключается в том, что вам нужно перебирать объекты тегов, а не поле формы.

0 голосов
/ 12 ноября 2010
{% for tag in form.tags.choices %}{{tag.1}}{% endfor %}
...