如何解决如何在 Django 中保存 HTML 表单时保存外键字段?
我想将一个 html 表单数据保存到 django 模型中,但它有一个来自另一个模型的外键字段。如何保存具有 FK 字段的表单?
我的模型:
class dish(models.Model):
title =models.CharField(max_length=200)
description =models.TextField(blank=True)
price =models.IntegerField()
photo_main= models.ImageField(upload_to="photos/%Y%m%d/")
photo_1= models.ImageField(upload_to="photos/%Y%m%d/",blank= True)
photo_2= models.ImageField(upload_to="photos/%Y%m%d/",blank= True)
def __str__(self):
return self.title
class Order(models.Model):
dishorder= models.ForeignKey(dish,null=True,on_delete=models.CASCADE)
name = models.CharField(max_length=200,blank=True)
email = models.CharField(max_length=100,blank=True)
phone = models.CharField(max_length=100,blank=True)
quantity =models.IntegerField(blank=True)
def __str__(self):
return self.name
我的观点:
def order(request):
if request.method == 'POST':
name = request.POST['name']
email = request.POST['email']
phone = request.POST['phone']
quantity = request.POST['quantity']
order= Order(
name=name,email=email,phone=phone,quantity=quantity)
order.save()
messages.success(request,"Your order has been submitted.")
return render(request,"dishes/order.html")
我的网址:
urlpatterns = [
path("dish",views.dish,name="dish"),path("dish/<pk>",views.dishsingle,name="dishsingle"),path("order",views.order,name="order"),]
我的模板菜肴/order.html
<form method="POST">
{% csrf_token %}
<div>
<label for="name">Name:</label>
<input type="text" name="name" class="form-control" required>
</div>
<div>
<label for="email">Email:</label>
<input type="email" name="email" class="form-control" required>
</div>
<div>
<label for="phone">Phone:</label>
<input type="number" name="phone" class="form-control" required>
</div>
<div>
<label for="quantity">Quantity:</label>
<input type="number" name="quantity" class="form-control" required>
</div>
<hr>
<input type="submit" value="MAKE AN ORDER">
</form>
在提交此 html 表单时,我希望将外键字段乱序也保存在后端。当我检查管理页面时,订单已保存,但没有菜名。我该如何解决?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。