【发布时间】:2017-02-07 12:30:24
【问题描述】:
我的 django 应用程序在表格视图中显示数据库中的对象。问题是这些对象(模型)非常复杂:有 50 多个字段。几乎每个字段我都必须进行一些格式化:
- 将电话号码从 int 71234567689 转换为“+7 (123) 456789”
- 用空格显示多头价格:“7 000 000”而不是“7000000”
- 从“street”、“house”等多个字段构建完整地址(逻辑如果非常复杂,需要多个 if-else-s)
- 等等
Django 模板语言有几个用于简单情况的有用标签,但我想在一般情况下(如我的情况)不适合严重格式化。
在模型类中创建@property-s 也不是一个选项,因为问题是关于渲染并且与模型无关。
所以我想我应该在视图中进行转换:为每个 obj 创建 dict,填充转换后的数据并传递给模板。
但是!该模型有很多字段,我不想全部复制它们:) 此外,保留模型结构以在 django 模板(例如,重新组合)和查询集惰性中使用它会很棒。
所以最好的方法是指导 django“如何渲染”。有可能吗?
【问题讨论】: