Я работаю над своим django
проектом, и мне нужна небольшая помощь, чтобы управлять и отображать объект с некоторыми условиями.
До сих пор я не преодолевал отображение объекта с помощью моегоусловия.
Этот объект является Руководством пользователя, которое может отображаться:
- на английском
- на французском
- на английском и французском
- нет руководства пользователя
Тогда есть несколько случаев:
- Если руководство пользователя на выбранном языке отсутствует, оно отображает существующее на сервере, независимо от языка,
- Если вообще нет руководства пользователя, я отображаю домашнюю страницу с сообщением об ошибке.
До сих пор, если руководство пользователя на определенном языке не существует, оно автоматически перенаправляется на мойдомашняя страница с сообщением об ошибке вместо отображения руководства пользователя, существующего на другом языке.
Это мой код:
def get(self, request):
if request.user.is_anonymous:
try:
curr_lang = ''
if '_language' in request.session:
curr_lang = request.session['_language']
else:
curr_lang = 'en'
if request.cur_app.guides.get(profile_type='', profile_level='', language=curr_lang).exists():
guide = request.cur_app.guides.get(profile_type='', profile_level='', language=curr_lang)
else:
guide = request.cur_app.guides.get(profile_type='', profile_level='')
except UserGuide.DoesNotExist:
messages.error(request, _('No user guide is available'))
return redirect('home')
Как я могу управлять различными делами?
Спасибоочень много
ОБНОВЛЕНИЕ:
Я написал это, похоже, работает, но я не знаю, если это хороший способ:
from django.utils.safestring import mark_safe
def get(self, request):
if request.user.is_anonymous:
try:
curr_lang = ''
if '_language' in request.session:
curr_lang = request.session['_language']
else:
curr_lang = 'en'
guide = request.cur_app.guides.get(profile_type='', profile_level='', language=curr_lang)
except UserGuide.DoesNotExist:
try:
guide = request.cur_app.guides.get(profile_type='', profile_level='')
filename = str(guide.file)
messages.error(request, mark_safe(_("No user guide is available on your " + curr_lang + " language. Please find the default userguide in : <a href='media/%s'>userguide</a>" % (filename))))
except UserGuide.DoesNotExist:
messages.error(request, _('No user guide is available'))
return redirect('home')