0

动态表单我在models.py建筑物的模型

class TProfiles(models.Model): 
    id = models.IntegerField(primary_key=True) # AutoField? 
    first_name = models.CharField(max_length=45, blank=True) 
    surname = models.CharField(max_length=45, blank=True) 
    email = models.CharField(max_length=45, blank=True) 

class Meta: 
    managed = False 
    db_table = 'profiles' 

而且在我的模板下面的模型我想基于模型的属性,产生形状。有没有动态循环它们的方法?

register.htmlmodels.py附加

{% block content %} 
    <form enctype="multipart/form-data" action="" method="post"> 
     <!-- Loop through model attributes here --> 
    </form> 
{% endblock %} 
+0

创造一个 '的ModelForm',并把它传递给模板。 – 2014-10-19 13:36:41

回答

3

class TProfilesForm(ModelForm): 
    class Meta: 
     model = TProfiles 
     fields = ['first_name', 'surname', 'email'] 

而且在views.py创建形式是这样的:

form = TProfilesForm() 

然后把它传递给模板是这样的:

return render_to_response("register.html", { 
    "form": form, 
}) 

而且在模板:

{% for field in form %} 
    {{ field.label_tag }} {{ field }} 
{% endfor %} 

您也可以找到所有关于ModelFormhere

+0

谢谢,这有助于很多。你知道如何忽略某些领域吗?我有一个ID字段,我不想出现在表单上。 – Jon 2014-10-19 13:56:30

+0

@Jon你可以在'class Meta:'中使用'fields'。检查我的编辑。 – 2014-10-19 14:00:59

+0

太棒了!谢谢=) – Jon 2014-10-19 14:05:24