ModelForm Django выберите проблему HTML - PullRequest
2 голосов
/ 14 февраля 2011

Я столкнулся с небольшой проблемой с моей modelForm, она работает, но если я пытаюсь использовать пользовательский html, я получаю сообщение об ошибке, когда пытаюсь перебрать form.bairro.*

    class Bairro(models.Model):
       bairro = models.CharField(max_length=50)

       def __unicode__(self):
         return self.bairro
       class Meta:
         db_table = 'bairro'

    class Cliente(models.Model):
     nome = models.CharField(max_length=80)
     bairro = models.ForeignKey(Bairro ,  on_delete=models.PROTECT)
     endereco = models.CharField(max_length=100)
     telefone = models.CharField(max_length=8,null=True)

     def __unicode__(self):
         return self.nome

     class Meta:
       ordering = ['nome']
       db_table = 'cliente'

Моя форма:

    from cliente.models import Cliente,Bairro
    from django.forms import ModelForm

    class ClienteForm(ModelForm):
     class Meta:
        model = Cliente

мой html:

         <select name="bairro" id="id_bairro">
                {% for b in      form.bairro%}                  
                <option value="{{b.id}}">{{b.bairro}}</option>
                {% endfor%}
            </select>

что мне не хватает?я не хочу использовать form.as_p () или form.as_table (), я хочу написать свой собственный html ..... уже использую собственный html с нормальными формами, и он отлично работает.

1 Ответ

3 голосов
/ 14 февраля 2011

http://docs.djangoproject.com/en/dev/ref/forms/fields/#django.forms.ModelChoiceField.queryset

Использовать атрибут набора запросов поля.

{% for b in form.bairro.field.queryset %}
     <option value="{{b.id}}">{{b.bairro}}</option>
{% endfor%}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...