Я создал новое поле, унаследованный от 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
Он просто принимает список аргументов (аргументы) и всегда связана с моделью Measure. Но когда я пытаюсь поставить его на модели и создать:
basic_condition = MeasureField(
'Density',
related_name="basic_condition_of_product",
)
У меня есть следующее сообщение об ошибке:
AttributeError: 'Product' object has no attribute 'basic_condition_id'
Я знаю, что родственное поле добавить атрибут с _id
приложенным для базы данных. Но я не знаю, почему мое пользовательское поле этого не делает.
Как я могу его создать?