Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django无法分配';比萨饼'&引用;:&引用;订单.食品“名称”;必须是一个";食物“;实例_Python_Django - Fatal编程技术网

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