Вопрос по django – Перенаправить к администратору для входа

0

У меня есть представление, определенное для URL "site / main /". Я хотел бы, чтобы пользователи (не прошедшие проверку подлинности) перенаправлялись на стандартную папку "/ admin /". страница для входа в систему, затем перенаправленная на «/ main /»; страница после успешного входа. Я следовал документации по Django, но, должно быть, мне чего-то не хватает, так как я не могу заставить это работать. Мой взгляд выглядит так:

def main(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect('admin/?next=%s' % request.path)
    else:

Я получаю ошибку:

Page not found (404)
Request Method: ПОЛУЧИТЬ
Request URL: Http: // имя_сайта: 8080 / главная / администратор / следующая = / главная /

Любая помощь с благодарностью!

Error: User Rate Limit Exceededstackoverflow.com/questions/4578685/…Error: User Rate Limit Exceededstackoverflow.com/questions/4578685/…Error: User Rate Limit Exceeded Scottymac
Error: User Rate Limit Exceeded Timo

Ваш Ответ

4   ответа
5

Error: User Rate Limit Exceeded/Error: User Rate Limit Exceeded/admin/?next=...

Error: User Rate Limit ExceededadminError: User Rate Limit ExceedednextError: User Rate Limit Exceeded

Error: User Rate Limit Exceededis_authenticatedError: User Rate Limit Exceededlogin_requiredError: User Rate Limit Exceeded

@login_required
def main(request):
   ...
Спасибо ! При следовании заdirections, Я столкнулся с той же ошибкой, что иNoReverseMatch while rendering , который имеет решение. Scottymac
именно то, что я испытал после добавления «/»; на "/ admin /". Часть, в которой вы меня теряете: «Вы должны создать шаблон входа в систему и подключить его к встроенным представлениям входа в систему». Я не совсем уверен, как подключить его ... и создать шаблон входа в систему ... Я ОЧЕНЬ новичок в django (если это еще не ясно :-)) Scottymac
Это полностью объяснено здесь:docs.djangoproject.com/en/1.4/topics/auth/…
Я попробую ... спасибо большое, Даниэль! Scottymac
0

Error: User Rate Limit Exceededredirect to admin for loginError: User Rate Limit Exceededredirect back to the view urlError: User Rate Limit Exceeded

  1. Add LOGIN_URL to settings.py inside your django project module:
...
LOGIN_URL = '/admin/login/'
  1. Add @login_required as decorator to your view function inside views.py:
from django.contrib.auth.decorators import login_required
...
@login_required
def main(request):

Once you set LOGIN_URL = '/admin/login/' you can use @login_required on whatever view in entire django project and it will redirect to admin for login and after successful login will redirect back to the view url.

Also now you don't need to use is_authenticated any more inside of a view as Daniel Roseman already said.

The good thing is that now you also don't need to build a login template and wire it up to the built-in login views.

Error: User Rate Limit ExceededflexibilityError: User Rate Limit ExceededauthenticationError: User Rate Limit Exceeded

1
  1. urls.py:

                        url('^', include('django.contrib.auth.urls')),
    
  2. registration/login.html:

  <h3>Login foo</h3>
    <form method="post" action="">
    {% csrf_token %}
    {{form.as_p}}
    <input type="submit" value="Login">
    </form>

  1. views.py

    def only_for_users(request): if not request.user.is_authenticated(): return HttpResponseRedirect('/login/?next=%s' % request.path)

    // fetch some really interesting data

    env=(django.get_version(),settings.BASE_DIR,sys.version) envMod=collections.OrderedDict(sorted(sys.modules.items())) return render(request,'env.html',{'env':env, 'envMod':envMod})

Error: User Rate Limit Exceeded

Error: User Rate Limit ExceededError: User Rate Limit Exceeded

2

Error: User Rate Limit Exceededrequest.pathError: User Rate Limit Exceeded/main/Error: User Rate Limit Exceeded

спасибо! .... изменение HttpResponseRedirect («admin /? next =% s») на «HttpResponseRedirect» («/ admin /? next =% s») фактически перенаправляет пользователя на экран входа (что здорово!). ... но "следующий = главный" кажется, не соблюдается ... после входа в систему пользователь остается на странице администратора ... есть идеи? Scottymac

Похожие вопросы