繁体   English   中英

django登录用户并在数据库中显示他们的实例和项目

[英]django login users and display their instance and items in the database

我有几个模型,其中一个是扩展django管理员的用户模型的外键。 我希望在登录时显示其会话中属于用户的内容。 我已经定义了此身份验证,该身份验证将检查数据库中是否存在特定用户,并将其重定向到与其实例的会话。

  def auth_view(request):
    username = request.POST.get('username', '')
    password = request.POST.get('password', '')
    user = auth.authenticate(username=username, password=password)

    if user is not None:
       auth.login(request, user)
       return HttpResponseRedirect('/studentloggedin/')

基本上,Registration是Student模型的第一个模型和外键,而Student也是UserLog的外键。 UserLog正在扩展默认的django admin。 我在这里定义了登录会话,以便在登录时过滤掉各个用户的详细信息。

   def studentloggedin(request):
       registration = Registration.objects.all()
       students = Student.objects.filter(registration=registration)
       alluser = UserLog.objects.filter(student=students)
       context = {
         'registration': registration,
         'students': students,
         'alluser': alluser,

      }
      return render(request, "studentloggedin.html", context)

这是在登录时呈现信息的模板。

<img
  {% for student in students %}

  src="{{ student.student_photo.url }}">

  <p>{{ student.previous_school }}</p>

  {% endfor %}

但我得到以下错误:

编程错误/ studentloggedin /

用作表达式的子查询返回的多行

我认为你正在做django已经有的事情:

if request.user.is_authenticated:
   # Do something for authenticated users.
    ...
else:
  # Do something for anonymous users.
    ...

从这里: https//docs.djangoproject.com/en/1.10/topics/auth/default/#authentication-in-web-requests

你也可以使用装饰器@login_required

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM