我正在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')