0

In my 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.

Like this i have around 30+ models this are just a few fields i have over 20 fields

& in my new_data.html file i have :

<form method="post"action="">{% csrf_token %}
{{ form.as_p}}
<input type="submit" name="" value="Submit">
</form>

How can i display only for e.g. show_name and exhibiting_company_name in my html template without creating a custom form in forms.py ?

Is there any way to call my model fields individually in a <input> tag like this :

<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> 

?

4

2 回答 2

1

如果您只想显示这些字段,那很容易:

<form method="post" action="">
    {{ form.show_name }}<br/>
    {{ form.exhibiting_company_name }}<br/> 
    <input type="submit" value="Submit">
</form> 

除非这些是唯一必填字段,否则您的表单将无法验证,并且您不会知道原因,因为您没有显示错误消息。

IOW,您必须定义一个自定义表单。但实际上,使用forms.ModelForm,它只是几行代码。

现在换一个完全不同的东西:拥有两个或多个具有相同架构并命名为“Model1”、“Model2、(...)、“ModelN”的模型是一种巨大的设计气味。如果它们具有相同的架构,它们就是一个单独的模型模型(以及数据库级别的一个表)。

于 2017-01-05T13:56:44.373 回答
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> 
于 2017-01-05T12:50:29.593 回答