3

在我的数据库作业表中,状态字段的值为“New_Mexico”。但我需要在像"New Mexico"这样的 html 页面中显示。给出一些查找和替换的想法。

视图.py

def result(request,user_id):
    userid=user_id
    query = Q(emp__companyname=userid) | Q(state=userid )
    details=jobs.objects.filter(query).select_related()
    return render_to_response('result.html', {'details': details})

结果.html

{% for d in details %}
    <label>{{ d.state }}</label>
{% endfor %}
4

3 回答 3

6

如果这应该是使用时的默认输出{{ object }},那么您应该__unicode__像这样覆盖模型的方法:

class MyModel(models.Model):
  title = models.CharField(...)  # this field may hold our string "New_Mexico"
  ...
  def __unicode__(self):
    return self.title.replace('_', ' ')

可能正在使用另{{ object.human_readable_title }}一种方法,您可以在模型中定义一个方法:

  def human_readable_title(self):
    return self.title.replace('_', ' ')

我认为没有理由为此用例构建您自己的模板标签,除非您想将它用于不同模型的许多字段。

编辑:您的“工作”类中似乎有一个名为“状态”的字段。所以在你的情况下,一个解决方案可能是:在你的模型类中创建一个方法

def human_readable_state(self):
  return self.state.replace('_', ' ')

并在模板中使用:

<label>{{ d.human_readable_state }}</label>

这应该够了吧。

于 2013-04-25T08:04:40.177 回答
2

没有内置的模板标签或过滤器可以做到这一点。

编写您自己的模板过滤器。

https://docs.djangoproject.com/en/dev/howto/custom-template-tags/#writing-custom-template-filters解释了你想要什么。

于 2013-04-25T07:43:05.320 回答
2

如果您的文本是“python 程序语言”

在 django {{ data.value.split|join:"-" }} 的 html 中使用此代码后

答案是:python-program-language

于 2019-11-06T07:52:44.170 回答