2017-02-22 12 views
0

ログインはdjangoで実装する必要がありますが、ログインは製品購入時やコメント作成時などに行うことができます。 ここでは、ログイン後にインデックスページのユーザーをリダイレクトしています。 しかし、私は彼がログインしている(注文、評価)ページから同じページに滞在する必要があります。djangoログインユーザー、ログイン後のユーザーが同じページにある

どうすればいいですか?私が実装したものをここで

あなたはテンプレートで、次のURLのログインビューチェックで次のURLを渡す必要が
def login_view(request): 
    if request.method=='POST': 
     form=UserLoginForm(request.POST or None) 
     if form.is_valid(): 
      email = form.cleaned_data["email"] 
      password = form.cleaned_data["password"] 
      try: 
       user = Customer.objects.get(email=email) 
       if user.check_password(password) : 
        if user.is_active and user.is_customer: 
         if user.mobile_verified : 
          user = authenticate(username=user.email, password=password) 
          login(request, user) 
          if request.POST.get('card_data'): 
           for items in request.POST.get('card_data').split(","): 
            cart = Cart(user=user, product_id=items) 
            cart.save() 
           total_cart = user.card_user.count() 
          else: 
           total_cart = 0 
          messages.success(request, "Login successfully.") 
          responss = redirect("Peru:home") 
          responss.delete_cookie('add_card_token') 
          return responss 
         else: 
          messages.success(request,"Mobile number is not verified") 
          return redirect("Peru:home") 
        else : 
         messages.info(request, "Your account may not be activated") 
         return redirect("Peru:home") 
       else: 
        messages.error(request,"Email or Password does not match") 
        return redirect("Peru:home") 
      except Exception as e: 
       messages.error(request, "User may not exists !") 
       return redirect("Peru:home") 
     else: 
      return redirect("Peru:home", forms=form) 
    else: 
     return redirect('Peru:home') 

答えて

1

。テンプレートで

<a href="{% url 'login' %}?next={{request.path}}">Login</a> 

そしてloginビューで:

from django.utils.http import is_safe_url 

def login(request): 
    redirect_to = request.POST.get('next', request.GET.get('next', '')) 
    # check form validity 
    # authenticate user 
    if redirect_to and is_safe_url(url=redirect_to, host=request.get_host()): 
     return redirect(redirect_to) 
    else: 
     return redirect('index') 
関連する問題