我是 Django 的新手,在這里需要一些幫助,我想制作一個頁面,賣家可以在其中使用優惠券代碼銷售您的商品,而客戶可以獲得這些優惠券。和 JS 稍微混合一下,我把優惠券藏了起來,你必須“購買”這個專案,這樣你才能擁有它。我有 3 個表,“Produto”(產品)、“Pedido”(訂單)和“Cliente”(客戶),當顧客試圖“購買”該物品時,它只出現了他/她的名字!有人能幫助我嗎 ?
我的視圖.py
@login_required(login_url='login')
def liberarForm(request, pk):
produto = Produto.objects.get(id=pk) #The Product IDs are working in admin panel
cliente = Cliente.objects.get(user=request.user)
if request.method == 'POST':
form_produto = LiberaProduto(request.POST)
form_cliente = LiberaPedido(request.POST)
if form_cliente.is_valid() and form_produto.is_valid():
form_cliente.save()
form_produto.save()
return redirect('/')
else:
form_produto = LiberaProduto(initial={'produto': produto}) #not working
form_cliente = LiberaPedido(initial={'cliente': cliente})
context = {'form_cliente': form_cliente, 'form_produto': form_produto}
return render(request, "liberar.html", context)
我的表格.py
class LiberaPedido(ModelForm):
class Meta:
model = Pedido
fields = '__all__'
exclude = ['produto', 'status', 'data_criado']
class LiberaProduto(ModelForm):
class Meta:
model = Produto
fields = ['nome', 'lojista', 'status', 'estoque']
我的模型.py
class Cliente(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
chapa = models.DecimalField(null=True, max_digits=20, decimal_places=0)
cpf = models.DecimalField(null=True, max_digits=20, decimal_places=0)
telefone = models.CharField(max_length=15, null=True)
email = models.CharField(max_length=200, null=True)
data_criado = models.DateTimeField(auto_now_add=True)
class Produto(models.Model):
STATUS = (
('Novo', 'Novo'),
('Expirado', 'Expirado'),
('Usado', 'Usado'),
)
lojista = models.CharField(max_length=200, null=True)
nome = models.CharField(max_length=200, null=True)
preco = models.DecimalField(null=True, max_digits=100, decimal_places=2)
cupom = models.CharField(max_length=200, null=True)
status = models.CharField(max_length=200, null=True, choices=STATUS)
desconto = models.FloatField(null=True)
estoque = models.BooleanField(verbose_name="Em estoque", default='Novo', null=True)
categorias = models.ManyToManyField(Categoria)
class Pedido(models.Model):
STATUS = (
('No estoque', 'No estoque'),
('Em rota', 'Em rota'),
('Entregue', 'Entregue'),
)
cliente = models.ForeignKey(Cliente, null=True, on_delete=models.SET_NULL)
produto = models.ForeignKey(Produto, null=True, on_delete=models.SET_NULL)
data_criado = models.DateTimeField(auto_now_add=True)
status = models.CharField(max_length=200, null=True, choices=STATUS, default='No Estoque')
我的 HTML
<form action="" method="POST">
{% csrf_token %}
{{form_cliente.as_p}}
{{form_produto.as_p}}
<input type="submit" value="Liberar">

uj5u.com熱心網友回復:
您查看代碼將是:-
@login_required(login_url='login')
def liberarForm(request, pk):
produto = Produto.objects.get(id=pk) #The Product IDs are working in admin panel
cliente = Cliente.objects.get(user=request.user)
if request.method == 'POST':
form_produto = LiberaProduto(request.POST)
form_cliente = LiberaPedido(request.POST)
if form_cliente.is_valid() and form_produto.is_valid():
form_cliente.save()
form_produto.save()
return redirect('/')
form_produto = LiberaProduto(initial={'nome': produto.nome, 'lojista': produto.lojista, 'status': produto.status}) #not working
form_cliente = LiberaPedido(initial={'cliente': cliente})
context = {'form_cliente': form_cliente, 'form_produto': form_produto}
return render(request, "liberar.html", context)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/336572.html
標籤:javascript Python html 姜戈
