Python Django:ModelManager
我创建了一个模型管理器,可以删除条目。我总是收到错误delete takes 1位置参数,但给出了2个位置参数。有人能解释一下我为什么会收到这个消息吗 view.pyPython 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
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()