ModelForm django选择html问题

时间:2011-02-14 03:24:43

标签: django

我的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 个答案:

答案 0 :(得分:3)

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

使用字段的queryset属性。

{% for b in form.bairro.field.queryset %}
     <option value="{{b.id}}">{{b.bairro}}</option>
{% endfor%}