Django 如何创建自定义的相关模型字段?
我创建了一个新字段,继承自Django 如何创建自定义的相关模型字段?,django,django-models,django-1.7,Django,Django Models,Django 1.7,我创建了一个新字段,继承自OneToOneField:: class MeasureField(models.OneToOneField): """ A custom Django model Field for Measure """ __metaclass__ = models.SubfieldBase description = _("Measurement") def __init__(self, *args, **kwargs):
OneToOneField
::
class MeasureField(models.OneToOneField):
""" A custom Django model Field for Measure """
__metaclass__ = models.SubfieldBase
description = _("Measurement")
def __init__(self, *args, **kwargs):
self.measure_types = args
args = (Measure,)
if 'to' in kwargs.keys():
args = tuple()
super(MeasureField, self).__init__(*args, **kwargs)
def deconstruct(self):
name, path, args, kwargs = super(MeasureField, self).deconstruct()
args = self.measure_types
return name, path, args, kwargs
它只接受一个列表参数(args),并且始终与模型度量值相关。但当我尝试将其放在模型上并创建模型时:
basic_condition = MeasureField(
'Density',
related_name="basic_condition_of_product",
)
我有以下错误:
AttributeError: 'Product' object has no attribute 'basic_condition_id'
我知道相关字段为数据库添加了一个附加了\u id
的属性。但我不知道为什么我的自定义字段不这样做
我应该如何创建它呢?实际上我不应该添加元类
子字段数据库。没有它,它工作得很好