Как разделить визуализацию ModelMultipleChoiceField от django в файле шаблона? - PullRequest
1 голос
/ 05 июня 2009

Я хочу сделать (заказал) форму списка песен.

models.py

class Song(models.Model):
    title = models.CharField(max_length=60)

class List(models.Model):
    title = models.CharField(max_length=100)
    songs = models.ManyToManyField(Song, through='Order')

class Order(models.Model):
    list = models.ForeignKey(List)
    song = models.ForeignKey(Song)
    order = models.IntegerField(unique=True)

и

forms.py

class ListEditForm(forms.Form):
    title = forms.CharField(
        label='List Title',
        widget=forms.TextInput(attrs={'size':100})
    )
    songs = forms.ModelMultipleChoiceField(
        label= 'Song Order',
        required= False,
        widget=forms.CheckboxSelectMultiple,
        queryset= Song.objects.none()
    )

, а затем

ListEditForm.py

<form id="edit-form" method="post" action="/list/edit/">
<p>
    {{ form.title.errors }}
    {{ form.title.label_tag }}
    {{ form.title }}
</p>
<p>
    {% for song in form.songs %}
        {{ song.label_tag }}
        {{ song }}
    {% endfor %}
</p>
<input type="submit" value="save" />
</form>

Этот шаблон вызывает следующую ошибку: При рендеринге возникла исключительная ситуация: объект BoundField не повторяется

Как разделить визуализацию каждого поля формы в 'form.songs'?

1 Ответ

2 голосов
/ 05 июня 2009

Вы получаете не повторяемую ошибку, потому что ListEditForm.songs - это отдельное поле, которое содержит список вариантов песен, а не список отдельных полей песен. Из вашего описания я не уверен, как вы хотели, чтобы список отображался.

Я бы посоветовал изучить использование набора форм Django. http://docs.djangoproject.com/en/dev/topics/forms/formsets/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...