如何将self传递给单独类的未绑定方法

时间:2012-03-29 00:15:30

标签: python django

我正在努力更新django-recurrence软件包以使用我的Python / Django版本。我要反对的是https://github.com/emperorcezar/django-recurrence/blob/master/recurrence/fields.py#L103

return super(RecurrenceField, self).formfield(**defaults)

调用该行的类是RecurrenceModelField,它是RecurrenceField周围的排序(但不是子类)的包装。

在某些时候,这个超级()黑魔法一定有效,但它不再有效。现在我想知道如何复制这个功能?

是否有一个简单的解决办法让它再次运行,还是我必须重构?

1 个答案:

答案 0 :(得分:1)

该功能已在提交54909d74fe中添加。它永远不会奏效。

RecurrenceModelField对象是Django的OneToOneField的子类。查看base class formfield method,绑定方法的参数始终是RecurrenceModelField的实例。

我认为最可能的解释是复制/粘贴错误 - 因为RecurrenceField类方法中出现了same line。作者可能复制了它并忘了更改类名。

您应该将该行更改为:

return super(RecurrenceModelField, self).formfield(**defaults)