我想从django外键扩展我的自定义字段。
class CustomField(models.ForeignKey):
def __init__(self, *args, **kwargs):
self.type=kwargs.pop('type', None)
super(CustomField, self).__init__(*args, **kwargs)
我正在使用
CustomField('User', type="test")
这是正常的,但我想在我的字段中硬编码模型名称,如此
super(CustomField, self).__init__('User', *args, **kwargs)
以便我可以使用
CustomField(type="test")
然后我收到此错误
__init__() got multiple values for keyword argument 'to'
答案 0 :(得分:1)
问题是,当您拨打to
时,您正在self
和'User'参数中发送models.ForeginKey使用的super(CustomField, self).__init__('User', *args, **kwargs)
参数。您可以尝试这样做:
class CustomField(models.ForeignKey):
def __init__(self, *args, **kwargs):
kwargs['to'] = 'User'
self.type = kwargs.pop('type', None)
super(CustomField, self).__init__(*args, **kwargs)