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