AttributeError:“非类型”对象没有属性“\u meta”Django

AttributeError:“非类型”对象没有属性“\u meta”Django,django,meta,nonetype,Django,Meta,Nonetype,我是个新手 我想更改所选数据food_status并将其保存到selected column food_status column。但它显示了一个错误 对于self.\u meta.concrete\u字段中的字段: AttributeError:“非类型”对象没有属性“\u meta” 在这部分 OrderItem.savefood_状态,更新_字段=['food_状态'] models.py class OrderItem(models.Model): Table_No = mode

我是个新手 我想更改所选数据food_status并将其保存到selected column food_status column。但它显示了一个错误

对于self.\u meta.concrete\u字段中的字段: AttributeError:“非类型”对象没有属性“\u meta”

在这部分

OrderItem.savefood_状态,更新_字段=['food_状态']

models.py

class OrderItem(models.Model):
    Table_No = models.IntegerField(blank=False)
    FoodId = models.TextField()
    Item = models.TextField()
    Qty = models.IntegerField(blank=False)
    Price = models.TextField()
    Note = models.TextField(max_length=100, null=True)
    OrderId = models.TextField(max_length=100, null=True)

    FoodStatus = (
       ('1', 'Has been ordered'),
       ('2', 'cooked'),
       ('3', 'ready to be served'),
       ('4', 'done'),
     )
   food_status = models.CharField(max_length=50, choices=FoodStatus, 
         default="has been ordered")
views.py

def kitchen_view(request):
    chef_view = OrderItem.objects.all()
    if request.method == "POST":
       food_status = request.POST.get("food_status")
       OrderItem.food_status = food_status
       OrderItem.save(food_status, update_fields=['food_status'])
    return render(request, 'restaurants/kitchen_page.html', {'chef_view':chef_view})
厨房页面.html

 <form action="#" method="post">
 {% csrf_token %}
 {% for order in chef_view %}
    <table width="800">
    <tr>
    <th width="800">Table Number</th>
    <th width="800">Item</th>
    <th width="800">Quantity</th>
    <th width="800">Price</th>
    <th width="800">Note</th>
    <th width="800">Order Id</th>
    <th width="800">Status</th>
   </tr>
   <tr>
    <td width="800">{{ order.Table_No }}</td>
    <td width="800">{{ order.Item }}</td>
    <td width="800">{{ order.Qty }}</td>
    <td width="800">{{ order.Price }}</td>
    <td width="800">{{ order.Note }}</td>
    <td width="800">{{ order.OrderId }}</td>
    <td width="800">{{ order.Status }} 
        <button type="button" class="close" data-dismiss="modal" aria- 
            label="Close"><span class="glyphicon glyphicon-pencil"  aria- 
            hidden="true">&times;</span></button>
    <select>
        <option name="food_status" id="1" value="None">Has been 
                ordered</option>
        <option name="food_status" id="2" 
                value="Cooked">Cooked</option>
        <option name="food_status" id="3" value="Ready to be 
                served">Ready to be served</option>
        <option name="food_status" id="4" 
                value="Done">Done</option>
        </select>
        <a href='' button onclick="myFunction()"><input 
                type="submit" value="Change Status"></button>
    </td>
       </tr>
</table>
  {% endfor %}
  </form>
代码应该根据html中的select选项将食物状态保存到食物状态数据库列


有人能帮我吗?非常感谢

您已经差不多拿到了,只是顺序不对。无法执行OrderItem.food\u状态=。。。在创建OrderItem实例之前。例如,这将起作用:

order_item = OrderItem()
order_item.food_status = food_status
order_item.save()
请尝试使用以下更完整的选项:

def kitchen_view(request):
    chef_view = OrderItem.objects.all()
    if request.method == "POST":
       food_status = request.POST.get("food_status")
       order_item = OrderItem(food_status=food_status)
       order_item.save()

    return render(request, 'restaurants/kitchen_page.html', {'chef_view':chef_view})

你差不多拿到了,只是顺序不对。无法执行OrderItem.food\u状态=。。。在创建OrderItem实例之前。例如,这将起作用:

order_item = OrderItem()
order_item.food_status = food_status
order_item.save()
请尝试使用以下更完整的选项:

def kitchen_view(request):
    chef_view = OrderItem.objects.all()
    if request.method == "POST":
       food_status = request.POST.get("food_status")
       order_item = OrderItem(food_status=food_status)
       order_item.save()

    return render(request, 'restaurants/kitchen_page.html', {'chef_view':chef_view})

解决了,非常感谢。但我还有一个问题,您知道如何根据id更新数据库中的数据吗?我想根据OrderId更新food_状态,你知道怎么做吗?解决了,非常感谢。但我还有一个问题,您知道如何根据id更新数据库中的数据吗?我想根据OrderId更新食物状态,你知道怎么做吗?