繁体   English   中英

我可以在django模板中使用别名字段名吗?

[英]Can I use alias field names in django templates?

我是django和python的新手......

我有一个模型,其中包括10个通用字段attrib_00到attrib_09。

我将这些字段作为上下文传递给django模板字符串。

我想在模板中使用更有意义的名称。

模板字符串是从另一个模型中获取的,我想到的是添加一个包含逗号分隔的相关别名列表的字段。 这个想法是列表中的第一个别名映射到attrib_00,第二个是attrib_01 ......

我想我需要在渲染之前修改上下文,以便将通用键替换为别名。

我在这里走在正确的轨道上吗?

有没有更好的办法?

谢谢,艾德

PS

(添加评论按钮不适合我吗?)

我还没有任何代码。 也许我应该解释一下我想要实现的目标......

我有一个用delphi编写的现有应用程序,可以帮助我维护大量的ebay列表,我想将它模仿为django / python Web应用程序。

每个产品/列表属于一个类别,每个类别都有一组属性。 所以例如裤子可能有颜色,腰围尺寸和腿长。 每个类别的属性数量和类型各不相同,但从不超过10。

我可以看到例如attrib_00如何用于一个类别中的大小并且在另一个类别中说金属但是然后将坚持使用模板中的通用字段名称。

仅供参考: - 我想我会在返回响应之前多次调用渲染过程在视图中进行任何循环?

我会说在从视图传递到模板之前在上下文中创建别名。 有点像:

c = Context({'foo': attrib_01, 'bar': attrib_02, ...})

你可以把它插入一个新的功能,这样你就不会破坏DRY,你很高兴。

更新:
至于在模板中实际映射这个,不是那么多。 毕竟,模板只是一个模板。 唯一能像你想的那样接近工作的是{% with %}块:

{% with attrib_01 as foo %}
   <div class="foo">{{ foo }}</div>
{% endwith %}

它可能会奏效,但我担心它会变得相当丑陋。

使用翻译怎么样?

attrib_00 = models.TextField(_('attrib_00'), blank=True, null=True)

然后根据需要为attrib_00提供不同的翻译。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM