Скажем, у меня есть установка, похожее на это:Динамически изменить возвращаемое поле значения Джанго модели
class UnitsOfMeasure(models.Model):
name = models.CharField(max_length=40)
precision = models.PositiveIntegerField()
class Product(models.Model):
name = models.CharField(max_length=100)
uom = models.ForeignKey(UnitsOfMeasure)
qty_available = models.DecimalField(max_tigits=10, decimal_places=10)
Теперь позволяет сказать, что мы имеем продукт, связанный с единицами измерения, например с точностью = 2. Как я могу сделать что qty_available вернет 5.50 вместо 5.5000000000?
Я знаю, что могу использовать декоратор свойств, но это не решает мою проблему, так как я хочу использовать qty_available как поле в формах.
Пользовательский тип поля? Как я могу передать и получить доступ к соответствующему экземпляру модели?
Ваши идеи очень оценены!
Это решает проблему только в ModelForm. Как насчет отображения значения на шаблонах? Тогда мне нужен настраиваемый фильтр шаблонов ... Что делать, если я хочу иметь разные формы с этим полем? Чем я должен повторять этот код снова и снова ... звучит не очень DRY ... – Simanas
Вы можете использовать свойство или тег шаблона для презентации. Если вам нужно несколько форм, вы должны иметь возможность использовать наследование для восстановления дублированного кода. Это может быть не так сухо, как вам нравится, и вы можете сделать что-то умнее с настраиваемым полем, но я не уверен, что это будет так же просто и легко понять. – Alasdair