问题描述
我想将一个 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 (将#修改为@)