【发布时间】:2014-11-13 09:35:02
【问题描述】:
我创建了一个继承自 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) 并且始终与模型 Measure 相关。但是当我尝试将它放在模型上并创建一个模型时:
basic_condition = MeasureField(
'Density',
related_name="basic_condition_of_product",
)
我有以下错误:
AttributeError: 'Product' object has no attribute 'basic_condition_id'
我知道相关字段为数据库添加了一个带有_id 的属性。但我不知道为什么我的自定义字段不这样做。
我应该如何创建它?
【问题讨论】:
标签: django django-models django-1.7