如何从 Django 字段创建自定义字段
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)
时发送 models.ForeginKey 在 self
和 'User' 参数中使用的 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)
我想让我的自定义字段从 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)
时发送 models.ForeginKey 在 self
和 'User' 参数中使用的 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)