1

template tag を提供する Django アプリケーションがありますprofile。このタグは、引数としてユーザー名を受け入れます。User指定されたユーザー名を持つインスタンスが存在しない場合、どのように対処すればよいですか? テンプレートタグ内で HTTP 404 を上げるのは理にかなっていますか? それとも、空の辞書をテンプレートに渡すだけですか?

4

4 に答える 4

2

テンプレートから 404 を上げることは不可能だと思います。ロジックとプレゼンテーションは分けておく必要があります。

2 つのサウンドの可能性があります。

  • テンプレートタグで何もレンダリングしないでください (サイレントに失敗します)
  • テンプレート エラーを発生させます。

あなたのテンプレート タグが何をしているのか正確には述べていないので、どちらもお勧めできませんが、テンプレート タグで行う最も一般的なことは、黙って失敗することです。

于 2010-07-01T12:26:44.467 に答える
2

ページがユーザー固有の場合は、@login_requiredそのページをレンダリングする前にユーザーを取得して、ユーザーが存在することを確認する必要があります。

それ以外の場合は、慣例により、テンプレート タグで黙って失敗する必要があります。

于 2010-07-01T13:01:39.967 に答える
1

タグuserを表示する前に、変数が存在するかどうかをテンプレート内で確認する必要があります。profile

于 2010-07-01T12:55:49.690 に答える
0

私は2つの方法を見ることができます:

次のように、JavaScriptコードでifステートメントを使用してリダイレクトします

{% if profile_not_exist %}
   Javascript with redirect
{% else %}
   Generic code
{% endif %}

または、ビューでロジックを定義します(より良い方法)。

def index(request):
   if(profile_not_exist):
      indexTemplate = loader.get_template('404.html')
   else:
      indexTemplate = loader.get_template('index.html')
于 2010-07-01T12:44:54.920 に答える