У меня есть веб-сайт Джанго, который пролито в зависимости от того, какой тип пользователя вы, мне нужно, чтобы перенаправить пользователей, которые не имеют права видеть некоторые аспекты сайта,Перенаправление пользователя в шаблоне Django
в моем шаблоне , У меня есть
{% if user.get_profile.is_store %}
<!--DO SOME LOGIC-->
{%endif%}
Как я могу перенаправить указанный магазин обратно в индекс сайта?
==== ==== EDIT
ef downloads(request):
"""
Downloads page, a user facing page for the trade members to downloads POS etc
"""
if not authenticated_user(request):
return HttpResponseRedirect("/professional/")
if request.user.get_profile().is_store():
return HttpResponseRedirect("/")
user = request.user
account = user.get_profile()
downloads_list = TradeDownloads.objects.filter(online=1)[:6]
downloads_list[0].get_thumbnail()
data = {}
data['download_list'] = downloads_list
return render_to_response('downloads.html', data, RequestContext(request))
я реализую ответ от thornomad, и теперь я получаю его ошибка
Environment:
Request Method: GET
Request URL: http://localhost:8000/professional/downloads
Django Version: 1.1.1
Python Version: 2.6.2
Installed Applications:
['django.contrib.auth',
'django.contrib.admin',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'sico.news',
'sico.store_locator',
'sico.css_switch',
'sico.professional',
'sico.contact',
'sico.shop',
'tinymce',
'captcha']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware')
Traceback:
File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response
92. response = callback(request, *callback_args, **callback_kwargs)
File "/var/www/sico/src/sico/../sico/professional/views.py" in downloads
78. if request.user.get_profile().is_store():
File "/var/www/sico/src/sico/../sico/shop/models.py" in is_store
988. return not self.account is None
File "/usr/local/lib/python2.6/dist-packages/django/db/models/fields/related.py" in __get__
191. rel_obj = self.related.model._base_manager.get(**params)
File "/usr/local/lib/python2.6/dist-packages/django/db/models/manager.py" in get
120. return self.get_query_set().get(*args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/db/models/query.py" in get
305. % self.model._meta.object_name)
Exception Type: DoesNotExist at /professional/downloads
Exception Value: Account matching query does not exist.
+1 - Ударьте меня. Определенно не хотят перенаправляться в шаблон. –
Я могу думать о некоторых действительных случаях, когда вы хотите, чтобы шаблон определял, нужно ли перенаправлять. Большинство случаев возникают, когда автор шаблона имеет определенную специфику для конкретной страницы, которая определяет, что вам нужно просмотреть другую страницу перед просмотром этой страницы. –
+1 @GregGlockner Чтобы добавить другой случай: когда вы переопределяете шаблон из сторонней библиотеки. В некоторых случаях проще перенаправить шаблон, чем переопределить представление, потому что вы все равно настраиваете его. – Medorator