我的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,它完美地工作。
答案 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%}