Python Django无法分配';比萨饼'&引用;:&引用;订单.食品“名称”;必须是一个";食物“;实例
大家好,我正在一个餐厅项目中工作,该项目允许用户选择食物并预订订单,但我在尝试预订订单时遇到此错误Python Django无法分配';比萨饼'&引用;:&引用;订单.食品“名称”;必须是一个";食物“;实例,python,django,Python,Django,大家好,我正在一个餐厅项目中工作,该项目允许用户选择食物并预订订单,但我在尝试预订订单时遇到此错误 Django无法分配“'Pizza'”:“Order.Food_Name”必须是“Foods”实例 我正在使用下拉菜单选择食物,我正在使用django 2.1.5版。请帮忙 views.py def place_order(request): name = request.POST["user"] food_items = request.POST['food_item'] qty = reque
Django无法分配“'Pizza'”:“Order.Food_Name”必须是“Foods”实例
我正在使用下拉菜单选择食物,我正在使用django 2.1.5版。请帮忙
views.py
def place_order(request):
name = request.POST["user"]
food_items = request.POST['food_item']
qty = request.POST['qty']
rating = request.POST['ratings']
price = Foods.Food_Price
order = Order(Date=datetime.date, Name_of_Person=name,Food_Name=food_items, Qty=qty, Total=price, Ratings=rating)
order.save()
return render(request, "index.html")
model.py
from django.db import models
class Foods(models.Model):
Food_Number = models.IntegerField(null=False,)
Food_Name = models.CharField(max_length=30, primary_key=True, null=False)
Food_Qty = models.CharField(max_length=10)
Food_Price = models.IntegerField()
def __str__(self):
return f"{self.Food_Number} - {self.Food_Name} {self.Food_Price}"
class Order(models.Model):
Order_id = models.AutoField(null=False, primary_key=True)
Date = models.DateField()
Name_of_Person = models.CharField(null=False, max_length=40)
Food_Name = models.ForeignKey(Foods, on_delete=models.CASCADE)
Qty = models.CharField(max_length=10)
Total = models.IntegerField()
Ratings = models.IntegerField()
def __str__(self):
return f"{self.Order_id} - {self.Name_of_Person} |{self.Food_Name} |{self.Total}"
我能做些什么来解决此错误问题在您的
订单中
型号食品名称
是外键字段。因此,您需要将模型实例(在本例中为Food)分配给该字段。但是您正在分配food\u items=request.POST['food\u item']
,我想这应该是food\u name字符串。这就是为什么会出现这种错误。我认为你的模型设计得不恰当Food\u Name
不是Food
模型中唯一的id字段,而是您希望Order
表中的Food
而不是Food\u Name
问题在于您的订单
型号食品名称
是外键字段。因此,您需要将模型实例(在本例中为Food)分配给该字段。但是您正在分配food\u items=request.POST['food\u item']
,我想这应该是food\u name字符串。这就是为什么会出现这种错误。我认为你的模型设计得不恰当Food\u Name
不是Food
模型中唯一的id字段,而是您希望Order
表中的Food
而不是Food\u Name