在我的django models.py中:
class Agent1(models.Model):
show_name = models.CharField(db_column='Show_Name', max_length=100,null=True)
exhibiting_company_name = models.CharField(db_column='Exhibiting_Company_Name', max_length=100,null=True) # Field name made lowercase.
company_website = models.CharField(db_column='Company_Website', max_length=100,null=True) # Field name made lowercase.
company_generic_email = models.EmailField(db_column='Company_Generic_Email', max_length=100,null=True) # Field name made lowercase.
class Agent2(models.Model):
show_name = models.CharField(db_column='Show_Name', max_length=100,null=True)
exhibiting_company_name = models.CharField(db_column='Exhibiting_Company_Name', max_length=100,null=True) # Field name made lowercase.
company_website = models.CharField(db_column='Company_Website', max_length=100,null=True) # Field name made lowercase.
company_generic_email = models.EmailField(db_column='Company_Generic_Email', max_length=100,null=True) # Field name made lowercase.
像这样,我有大约30多个型号,这只是我有超过20个领域的几个领域
&安培;在我的new_data.html文件中我有:
<form method="post"action="">{% csrf_token %}
{{ form.as_p}}
<input type="submit" name="" value="Submit">
</form>
我如何仅显示例如我的html模板中的show_name和exhibiting_company_name没有在forms.py中创建自定义表单?
有没有办法在<input>
标记中单独调用我的模型字段,如下所示:
<form action="demo_form.asp">
Show Name: <input type="text" name="sname"><br/>
Company Name: <input type="text" name="cname"><br/>
<input type="submit" value="Submit">
</form>
答案 0 :(得分:1)
如果您只想显示这些字段,那很容易:
<form method="post" action="">
{{ form.show_name }}<br/>
{{ form.exhibiting_company_name }}<br/>
<input type="submit" value="Submit">
</form>
但除非这些是唯一必填字段,否则您的表单无法验证,并且您不会知道原因,因为您没有显示错误消息。< / p>
IOW,将必须定义自定义表单。但实际上,使用forms.ModelForm
,它只需要几行代码。
现在有一些完全不同的东西:拥有两个或多个具有相同模式的模型并命名为&#34; Model1&#34;,&#34; Model2,(...),&#34; ModelN&#34;是一种巨大的设计气味。如果它们具有相同的模式,则它们是单个模型(以及数据库级别的单个表)。
答案 1 :(得分:0)
如果我正确理解问题,您只需在模板中显示特定字段。为此,您可以遍历所有表单的字段(请参阅docs)并仅显示具有特定名称的字段:
<form method="post" action="">
{% csrf_token %}
{% for field in form %}
{% if field.name == "show_name" or field.name == "exhibiting_company_name" %}
{{ field }}
{% endif %}
{% endfor %}
<input type="submit" value="Submit">
</form>