【发布时间】:2013-04-15 07:49:41
【问题描述】:
这些行有什么问题:
for i in message_list:
message_stream = Messages.objects.filter(OrderID = i.OrderID).order_by('-MessageLocalID')
if message_stream[0].MessageTypeName != 'MessageAck':
message_stream[0].status = message_stream[0].MessageTypeName
message_stream[0].save()
status 字段没有保存在数据库中。我在这里误解了什么?
【问题讨论】:
-
你能发布一个堆栈跟踪吗?
-
它不显示错误。当我使用更新方法而不是保存时,只会显示错误,如下所示:
message_stream[0].update(status = Message_stream[0].MessageTypeName)。如果我能澄清更多,请告诉我:) -
你必须使用
get而不是filter。 -
Django docs:'请注意,使用 get() 和使用带有 [0] 切片的 filter() 是有区别的。如果没有与查询匹配的结果,get() 将引发 DoesNotExist 异常。'
-
同意,但是如果我想获得多个值,这需要使用过滤器,进行一些修改并将它们保存到数据库,这可能吗?
标签: django django-models django-queryset