我有一個問題,發生的事情是我在一個同名的應用程式中有一個名為“ Clientes ”的模型,在那里我有一個包含我模型的所有欄位的表單,表單保存得很好。我還有一個名為“ Presupuestos ”的應用程式,它繼承了“ Clientes ”,該應用程式用作Clientes的快捷方式。也就是說這個快捷方式是“ Clientes form”的簡化版,我的意思是“clientes-add.html”(form)有10個欄位,而“presupuestos-add.html”(form)有5個欄位。問題是“ Presupuestos ”沒有保存任何東西。是不是因為它沒有呼叫所有的“客戶” ?" 欄位,它只保存 5 個?并且還嘗試輸入表單錯誤,但它不起作用。
發生了一些奇怪的事情,如果我渲染 {{form}},models.py 的所有輸入出現在我面前,并且通過轉到下一頁來保存資訊,但是如果我逐欄位渲染:{{form.nombre}} {{form.apellido}} 它不再保存,它保持在同一頁面上
模型.py
class Clientes(models.Model):
tipo = models.CharField(max_length=200)
TITLE = (
('Mrs.', 'Mrs.'),
('Miss', 'Miss'),
('Mr.', 'Mr.'),
)
corporacion=models.CharField(max_length=200)
titulo = models.CharField(max_length=200, null=True, choices=TITLE,default='Mr.')
nombre = models.CharField(max_length=200)
apellido = models.CharField(max_length=200)
telefono = models.IntegerField()
tel = models.IntegerField()
fax = models.IntegerField()
correo = models.EmailField(max_length=200)
website=models.URLField(max_length=200)
pais = models.CharField(max_length=200)
direccion=models.CharField(max_length=200)
ciudad=models.CharField(max_length=255)
estado=models.CharField(max_length=255)
zip=models.CharField(max_length=255)
fecha_registro = models.DateTimeField(default=datetime.now)
def __str__(self):
return f'{self.nombre} {self.apellido}'
視圖.py
class step1(CreateView):
model=Clientes
form_class = ClientesForm
template_name='Presupuestos/new-estimate-1-customer-details.html'
success_url=reverse_lazy('Presupuestos:step2')
presupuestos-add.html
<form method="post">
{% csrf_token %}
<div class="row">
<div class="col-12 mb-3">
<h4 class="card-title">Customer information</h4>
</div>
<div class="col-md-2">
<div class="mb-3">
<label>Title</label>
{{ form.titulo }}
</div>
</div>
<div class="col-md-5">
<div class="mb-3">
<label>First name</label>
{{form.nombre}}
</div>
</div>
<div class="col-md-5">
<div class="mb-3">
<label>Last name</label>
{{form.apellido}}
</div>
</div>
<a href="{% url 'Presupuestos:step2' %}"> <button class="btn btn-primary" type="submit" value="Submit">Next</button></a>
</div>
</form>
至于clients-add.html,它可以很好地保存資料,與quotes-add.html的唯一區別是clients-add.html具有models.py的所有欄位
uj5u.com熱心網友回復:
在表單的 Meta 類中,您可以包含或排除您想要的任何欄位。
例如:
ClientesForm(models.Form):
...
class Meta:
model = Clientes
fields = ['corporation', 'titulo']
將僅包括列出的兩個欄位。
您可以類似地從表單中排除欄位,以便除列出的所有欄位之外的所有欄位都將包含在表單中。
ClientesForm(models.Form):
...
class Meta:
model = Clientes
exclude = ['corporation', 'titulo']
您的問題是您擁有的每個欄位都是必需的(null=True在您的任何模型欄位中都沒有),因此如果表單包含該欄位,則需要它的值。默認情況下,模型表單包含所有欄位,除非您定義fields陣列或exclude陣列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/434708.html
上一篇:ETypeError:禁止直接分配到多對多集合的前端。改用subject.set()
下一篇:djangourl中的可選引數
