簡體   English   中英

登錄門戶后,在我的 Django 門戶中,我的 request.user 始終提供值 AnonymousUser

[英]In my Django portal after login to the portal my request.user is always giving the value AnonymousUser

def login(request):
     if request.method == 'POST':
        form = AuthForm(request.POST)
        if form.is_valid():

               userEmail = strip_html(form.cleaned_data['auth_email'])
               userPassword = strip_html(form.cleaned_data['auth_password'])
               try:
                person = Auth.objects.get(auth_email=userEmail, auth_password=userPassword)
                request.session['username'] = person.auth_name


    return redirect("/crudapplication/show")
                except:
                    page = 'login.html'
                    message = 'Username doesn\'t exist'

上面是一個小代碼片段。 這是我的登錄功能。所以我提供的用戶電子郵件和密碼的值存在於我的數據庫中。

因此,當我通過 print(request.user) 在控制台上打印該行時,它總是給出值 Anonymoususer。 登錄功能是我的登錄模塊的views.py的一部分

您正在以非常手動的方式進行身份驗證。 這可能導致的問題是 2:

  • 不起作用的代碼
  • 投入更多時間

使用框架 django 的目的不是必須從 0 開始工作,因此它使用了 django 擁有的工具。

對於這種情況,請使用 django 身份驗證系統:

https://docs.djangoproject.com/en/3.0/topics/auth/default/

以上是官方文檔,但是為了了解身份驗證如何在個人層面上工作,我從以下教程中得到了更多幫助:

https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Authentication

def login_user(request):
    print(request.POST)
    username = request.POST['username']
    password = request.POST['password']
    print(username)
    print(password)
    user = authenticate(request, username=username, password=password)
    print(user)
    if user is not None:
        login(request, user)
        return redirect("/crudapplication/show")
        ...
    else:
        # Return an 'invalid login' error message.
        return render(request, 'login.html')

上面是我的 views.py 文件,下面是我的模板文件。

<form method="post" action="/authLogin/login/">
    {% csrf_token %}
    <table>
      <tr>
        <td>{{ form.username.label_tag }}</td>
        <td>{{ form.username }}</td>
      </tr>
      <tr>
        <td>{{ form.password.label_tag }}</td>
        <td>{{ form.password }}</td>
      </tr>
    </table>
    <input type="submit" value="login" />
    <input type="hidden" name="next" value="{{ next }}" />
  </form>

現在一切正常..但我只想知道我在模板文件中使用的表單對象我將如何從我的 views.py 文件中傳遞這個對象?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM