django - AttributeError: 'NoneType' 对象没有属性 '_meta' Django
问题描述
我是一个新手,我想更改选定的数据(food_status)并将其保存到选定的列(food_status 列)。但它显示一个错误
对于 self._meta.concrete_fields 中的字段:AttributeError:“NoneType”对象没有属性“_meta”
在这部分
OrderItem.save(food_status, update_fields=['food_status'])
模型.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")
视图.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})
kitchen_page.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">×</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 中的选择选项将 food_status 保存到 food_status 数据库列。
任何人都可以帮助我吗?万分感激
解决方案
你几乎得到它,但只是不完全正确的顺序。OrderItem.food_status = ...
在创建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})
推荐阅读
- python - 为什么 c++ 代码实现的性能不如 python 实现?
- python - 以正确的日期格式将 SAS lib 导出到 csv(在 CSV 文件中)
- bash - 如何在 unix 中打印失败的挂载点?
- python - 如何在我的程序计算器中绑定键。特金特
- c++ - 在定义(.cpp 文件)中初始化静态浮点 constexpr 成员是否可能
- django-forms - 如何选择多个值而不使用 django 表单和 SelectMultiple 小部件进行控制?
- mysql - 如何规范化具有相似列名的表?
- android - 无法将对象传递给我的自定义复合控件
- android - 国家和民族的 Array.xml 列表
- jquery - 设置灯箱项目的顺序