【发布时间】:2021-03-21 16:21:16
【问题描述】:
我的 models.py 中有一个名为“Client”的类,它有不同的字段,例如(名称、dob 等)。我在 views.py 中有一个名为“ClientCreateView”的视图,其中我在客户端类的某些字段(不是所有字段)中进行输入。用于此的模板称为“client_form.html”。
相关文件如下:
models.py:
class Client(models.Model):
name = models.CharField(max_length = 100)
dob = models.SlugField(max_length = 100)
CNIC = models.SlugField(max_length = 100)
property_type = models.CharField(max_length = 100)
down_payment = models.IntegerField()
date_posted = models.DateTimeField(default=timezone.now)
installment_month = models.CharField(max_length = 100)
installment_amount = models.IntegerField(default = 0)
views.py:
class ClientCreateView(CreateView):
model = Client
fields = ['name', 'dob', 'CNIC', 'property_type', 'down_payment']
class AddInstallmentView(CreateView):
model = Client
fields = ['installment_month', 'installment_amount']
client_form.html
{% extends "property_details/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="content_section">
<form method="post">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4"> Add New Client</legend>
{{ form|crispy }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Add Client</button>
</div>
</form>
</div>
{% endblock %}
现在您可以看到,我在 views.py 中的前五个字段(name、dob、CNIC、property_type、down_payment)中输入了输入,因为这些是唯一需要的字段将新客户端添加到我的数据库中。
一旦客户端被添加到数据库中。我想为添加的客户添加分期付款。所以我创建了一个名为“AddInstallmentView”的新视图(参见上面的views.py)
下面给出的 html 表单是“addinstallment_form.html”:
addinstallment.html
{% extends "property_details/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="content_section">
<form method="post">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4"> Add New Installment</legend>
{{ form|crispy }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Add Installment</button>
</div>
</form>
</div>
{% endblock %}
现在,当我运行服务器并尝试添加客户端时。它有效!
但是当我尝试向客户端添加分期付款时。我看到包含两个字段(分期付款,分期付款)的表格。但是我看到的图例是'添加新客户端',实际上是'client_form.html'中的图例(见上文),提交按钮也来自'client_form.html ' 即 'Add Client',但图例应为 'Add New Installment',提交按钮应为 'Add Installment'。
好像我只有AddInstallmentView的字段,但模板仍然是'client_form.hmtl'。
有没有人知道如何解决这个问题。
【问题讨论】:
标签: python html django templates