Я пытался проверить метод get_object_or_404
в моем view
. Поэтому я установил DEBUG=False
и установил ALLOWED_HOSTS=['*']
.Django - get_object_or_404 возвращает 500 вместо 404
Теперь, когда я перехожу на http://127.0.0.1:8000/profile/correctusername/
, он возвращает правильный профиль. Проблема в том, что если я попытаюсь написать неверный username
, он вернет 500
вместо 404
- в соответствии с названием functio я полагаю, что он должен вернуть 404
.
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)
Почему это так и как это исправить?
я оставил бы DEBUG установлен так, что, как вы сможете увидеть более подробное сообщение об ошибке, что пошло не так. Вы по-прежнему сможете узнать, вернётся ли объект назад или ошибка 404. – denvaar
Я проверил его, и он действительно возвращает 404, поэтому я не знаю, почему без режима DEBUG он возвращает 500. Может быть, потому что он не может найти 404 html? –
Вот почему. – denvaar