[英]How to make custom field from django field
我想使我的自定义字段从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'
问题在于,当您调用super(CustomField, self).__init__('User', *args, **kwargs)
时,您将在self
和'User'参数中发送由models.ForeginKey使用的to
参数。 您可以尝试通过以下方式进行操作:
class CustomField(models.ForeignKey):
def __init__(self, *args, **kwargs):
kwargs['to'] = 'User'
self.type = kwargs.pop('type', None)
super(CustomField, self).__init__(*args, **kwargs)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.