0

get_object_or_404でメソッドをテストしようとしていましたview。だから私は設定DEBUG=Falseして設定しALLOWED_HOSTS=['*']ました。

に移動するとhttp://127.0.0.1:8000/profile/correctusername/、正しいプロファイルが返されます。問題は、私が間違って書き込もうとすると、代わりにusername返されることです。500404404

def get_user_profile(request, username):
    # user = User.objects.get(username=username)
    user = get_object_or_404(User, username=username)

    jobs = user.jobs.all()
    table = MyJobsTable(jobs)

    context = {
        'my_jobs': table,
        "user_": user
    }
    return render(request, 'auth/profiles/my-profile.html', context=context)

ここに画像の説明を入力

なぜそうなのか、どうすれば修正できるのでしょうか。

4

2 に答える 2

1

私は同じ問題に遭遇し、Milano Slesarik のコメントが解決策を見つけるのに役立ちました。最近、カスタム 404 ハンドラーを割り当てましたが、正しく行われなかったことが判明しました。

これが私が正しくやったことです:次の行をに追加しますurls.py。追加する必要はありませんfrom django.conf.urls import handler404:

handler404 = views.error404

これが私が間違ったことです。私views.pyはこの機能を追加しました:

def error404(request):
    return HttpResponseNotFound('custom 404 not found')

しかし、次のことを忘れていましimport HttpResponseNotFoundviews.py

from django.http import HttpResponse, HttpResponseNotFound

そのため、例外が発生していました。しかし、設定したばかりなのでDEBUG=False、エラーは表示されませんでした。500 応答コードを見ました。

それが誰かを助けることを願っています!

urls.py に次の行を追加します。

handler404 = 'views.error404'
于 2017-01-09T22:17:07.500 に答える