Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.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:ModelManager_Python_Django - Fatal编程技术网

Python Django:ModelManager

Python Django:ModelManager,python,django,Python,Django,我创建了一个模型管理器,可以删除条目。我总是收到错误delete takes 1位置参数,但给出了2个位置参数。有人能解释一下我为什么会收到这个消息吗 view.py ReservedItem.objects.delete(order_reference) models.py class ReservedItemManager(models.Manager): def delete(order_reference): super().get_queryset().filter

我创建了一个模型管理器,可以删除条目。我总是收到错误delete takes 1位置参数,但给出了2个位置参数。有人能解释一下我为什么会收到这个消息吗

view.py

ReservedItem.objects.delete(order_reference)
models.py

class ReservedItemManager(models.Manager):
    def delete(order_reference):

    super().get_queryset().filter(order_reference=order_reference).delete()
您在方法定义中忘记了self

因此,Python将order_引用参数视为self参数,因为它的名称没有任何区别,self只是一个约定,因此Python认为您的方法没有接受任何其他参数,并在尝试使用参数调用它时引发了一个异常

您的类定义应如下所示:

class ReservedItemManager(models.Manager):
    def delete(self, order_reference):  # <-- note `self` here
        super().get_queryset().filter(order_reference=order_reference).delete()