python - Django:如何在不知道有多少信息可用的情况下很好地格式化模板中的地址?

标签 python django formatting django-templates street-address

我有一张包含地址信息的表格。它有这些字段。

  • 地址_1
  • 地址_2
  • 城市
  • 状态
  • 压缩

不需要字段。我想在模板中显示它并很好地格式化它。我想要在 address_1、address_2 和任何存在的城市/州/ zip 线之间换行。如果两者都存在,我还希望在城市和州之间使用逗号。完成此任务的最佳方法是什么?我开始在模板中编写一个 if 语句,但它似乎变得有点笨拙。最大的问题是用户只能输入城市和州、邮政编码、完整地址或介于两者之间的任何内容。

最佳答案

实现这一目标的方法有很多种,但没有一种可能是那么优雅。我会把它扔进戒指...在您的处理程序中执行此操作,并将 address_parts 传递给模板上下文。

## Gather the address components in groups, removing any that are None
address_parts = filter(None, [
    model_obj.address_1,
    model_obj.address_2,
    u', '.join(filter(None, [model_obj.address_city, model_obj.state])),
    model_obj.zip,
])


## In the template, join the address groups
{{ address_parts|join:"<br>" }}

关于python - Django:如何在不知道有多少信息可用的情况下很好地格式化模板中的地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11713800/

相关文章:

python - QThreadPool - 如何中断/如何明智地使用 waitForDone 方法

python - 在 Python 中抓取表格时,返回一个空表格

python - 有什么方法可以在 Django 中对聚合进行分组吗?

ManytoMany 字段中的 Django ForeignKey 显示为 None

mysql - 更改MySQL中的数字格式(欧洲格式)

formatting - 更改PyCharm中Black插件的88个字符限制

Python如何使用defaultdict创建列表字典的字典

python - 在Hadoop流中使用TotalOrderPartitioner

python - Django,测试应用程序的行为

formatting - 引用 YAML(对于 Travis CI)