我从Django开始,我正在尝试制作一个应用程序,将订单链接到客户,让用户能够点击客户并查看该客户已经下了哪些订单
问题是,每个教程都会使用命令提示符或管理屏幕手动执行这些链接,我需要从代码中自动获得它们。这段代码就是我在Orden表单中使用的代码。我发现了两个错误,第一个是404错误,ordenfill页面未找到,这是在我单击guardar按钮后发生的,我想这是因为在我单击guardar按钮后,表单无效,正在尝试访问没有“nombre”参数的ordenfill URL,但我不确定。如果我从视图和URL中删除nombre参数,那么我不知道如何获取该名称并将表单链接到该名称,404错误将停止,但我从未获得有效表单,因为系统告诉我需要客户端字段
这些是模型
class Cliente(models.Model):
nombre = models.CharField(max_length=100)
email = models.EmailField(max_length=50)
direccion = models.CharField(max_length=100, default='direccion')
class Meta:
db_table = 'datosclientes'
class Orden(models.Model):
num_orden = models.CharField(max_length=20, default='')
instrumento = models.CharField(max_length=30, default='')
marca = models.CharField(max_length=20)
serial = models.CharField(max_length=15, default='')
abono = models.CharField(max_length=15, default='')
client = models.ForeignKey(Cliente, on_delete=models.CASCADE, default='')
class Meta:
db_table = 'datos_ordenes'
这是表格
from django import forms
from clientesapp.models import Cliente, Orden
class clienteForm(forms.ModelForm):
class Meta:
model = Cliente
fields = '__all__'
class ordenForm(forms.ModelForm):
class Meta:
model = Orden
fields = '__all__'
这是关联的视图
def ordenfill(request, nombre):
cliente = Cliente.objects.get(nombre=nombre)
if request.method == 'POST':
orden = ordenForm(request.POST)
orden.client = cliente
if orden.is_valid():
init = orden.save()
return redirect('ordenview', id=init.id)
else:
orden = ordenForm()
return render(request, 'ordenfill.html', {'orden': orden})
这是相关的前端:
<body>
{% block content %}
<form method="POST" class="post-form" action="/ordenfill/">
{% csrf_token %}
<div class="container">
<br>
<div class="form-group row">
<label class="col-sm-1 col-form-label"></label>
<div class="col-sm-4">
<h3>Ingrese los Datos</h3>
</div>
</div>
<div class="form-group row">
<label class="col-sm-1 col-form-label">Cliente</label>
<div class="col-sm-4">
{{orden.client.nombre}}
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">Orden</label>
<div class="col-sm-4">
{{orden.num_orden}}
</div>
</div>
.
.
.
<div class="form-group row">
<label class="col-sm-2 col-form-label"></label>
<div class="col-sm-4">
<button type="submit" class="btn btn-primary">Guardar</button>
</div>
</div>
</div>
</form>
{% endblock %}
</body>
以下是URL:
from django.contrib import admin
from django.urls import path, include
from clientesapp import views as cv
from register import views as v
urlpatterns = [
path('admin/', admin.site.urls),
path('home/', cv.home, name="home"),
path('update/<int:id>', cv.update, name="clupdate"),
path('ordenfill/<str:nombre>', cv.ordenfill, name="ordenfill"),
path('ordenview/<int:id>', cv.ordenview, name="ordenview"),
path('', include("django.contrib.auth.urls")),
]
编辑:
目前没有回答
相关问题 更多 >
编程相关推荐