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 に答える