我正在努力更新django-recurrence软件包以使用我的Python / Django版本。我要反对的是https://github.com/emperorcezar/django-recurrence/blob/master/recurrence/fields.py#L103
行return super(RecurrenceField, self).formfield(**defaults)
调用该行的类是RecurrenceModelField,它是RecurrenceField周围的排序(但不是子类)的包装。
在某些时候,这个超级()黑魔法一定有效,但它不再有效。现在我想知道如何复制这个功能?
是否有一个简单的解决办法让它再次运行,还是我必须重构?
答案 0 :(得分:1)
该功能已在提交54909d74fe中添加。它永远不会奏效。
RecurrenceModelField
对象是Django的OneToOneField
的子类。查看base class formfield method,绑定方法的参数始终是RecurrenceModelField
的实例。
我认为最可能的解释是复制/粘贴错误 - 因为RecurrenceField
类方法中出现了same line。作者可能复制了它并忘了更改类名。
您应该将该行更改为:
return super(RecurrenceModelField, self).formfield(**defaults)