【发布时间】:2014-01-31 01:26:45
【问题描述】:
这里是 Django 和 Python 的新手,如果这很简单,请原谅我......
我正在尝试删除 MyClass 类型的对象,但由于某种原因,当我确信该对象确实存在时,我不断收到匹配查询不存在错误。
我写了一个如下所示的删除方法:
def delete(self, request, format=None, *args, **kwargs):
identifier = request.DATA.get('identifier', None)
my_object = MyObjectClass.objects.get(pk=identifier)
if my_object:
my_object.delete()
return Response(status=status.HTTP_200_OK)
当我这样做时,我收到消息 MyObjectClass 匹配查询不存在。
但是,当我运行 python manage.py shell 时,我可以通过这种方式检索对象:
my_object = MyObjectClass.objects.get(pk=1001)
这按预期工作......所以显然存储在该标识符变量中的任何内容都不正确,尽管我无法弄清楚原因。我的问题:我必须做一些类型转换才能让它工作吗?或者有没有人知道为什么这可能会破坏?
谢谢!
【问题讨论】:
-
澄清:你说你写了一个“删除方法”。您的意思是基于 Django 函数的视图,对吗? (而不是覆盖模型的删除方法或其他东西)
-
对...上面的代码在我发送DELETE请求时执行
-
aah 等等,这可能是基于类的视图的删除方法?当 Django 添加 CBV 时,一切都变得如此复杂......