Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python NoReverseMatch at/login/Reverse for';教师仪表盘&x27;带参数';({';教师';:对象(2)>;},';没有找到。尝试了1个模式:_Python_Django_Dictionary_Routing - Fatal编程技术网

Python NoReverseMatch at/login/Reverse for';教师仪表盘&x27;带参数';({';教师';:对象(2)>;},';没有找到。尝试了1个模式:

Python NoReverseMatch at/login/Reverse for';教师仪表盘&x27;带参数';({';教师';:对象(2)>;},';没有找到。尝试了1个模式:,python,django,dictionary,routing,Python,Django,Dictionary,Routing,视图.py def Login(request): if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') user = authenticate(request , username=username , password=password) if user i

视图.py

def Login(request):

    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(request , username=username , password=password)
        if user is not None:
            try:
                is_teacher= Teacher.objects.get(profile_id=user.id)
            except Teacher.DoesNotExist:
                is_teacher = None
            if is_teacher is not None:
                login(request , user)
                is_teacher= Teacher.objects.get(profile_id=user.id)
                return redirect('teacher_dashboard' , {'teacher' : is_teacher})
            else:
                login(request , user)
                return redirect('student_dashboard' ) 
    return render (request , "pages/login.html")
path('teacher_dashboard/', views.TeacherDashboard , name='teacher_dashboard'),
path('student_dashboard/', views.StudentDashboard , name='student_dashboard'),
url.py

def Login(request):

    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(request , username=username , password=password)
        if user is not None:
            try:
                is_teacher= Teacher.objects.get(profile_id=user.id)
            except Teacher.DoesNotExist:
                is_teacher = None
            if is_teacher is not None:
                login(request , user)
                is_teacher= Teacher.objects.get(profile_id=user.id)
                return redirect('teacher_dashboard' , {'teacher' : is_teacher})
            else:
                login(request , user)
                return redirect('student_dashboard' ) 
    return render (request , "pages/login.html")
path('teacher_dashboard/', views.TeacherDashboard , name='teacher_dashboard'),
path('student_dashboard/', views.StudentDashboard , name='student_dashboard'),

我想在URL中重新引用queryset时发送带有html页面的queryset。py路径如下:

path('teacher_dashboard/', views.TeacherDashboard , name='teacher_dashboard')
此处的“teacher_dashboard/”不期望在“/”之后出现任何内容。如果需要传递任何参数,则应使URL.py中指定的路径成为该部分


然而,这是不可能的。您需要通过URL传递的内容实际上来自浏览器,您不希望浏览器传递查询集。因此,基本上您可以做的是在URL中传递教师对象的pk,然后再次在TeachDashboard中获取该对象

您的代码中有两个错误

  • 返回重定向('teacher\u dashboard',{'teacher':is\u teacher})
  • 因为url没有任何参数

    path('teacher_dashboard/', views.TeacherDashboard , name='teacher_dashboard'),
    
    你需要

    return redirect('teacher_dashboard')
    
  • 如果要重定向到个别教师仪表板
  • 返回重定向('teacher\u dashboard',{'teacher':is\u teacher.id})

    而url将是

    path('teacher_dashboard/<int:teacher>', views.TeacherDashboard , name='teacher_dashboard')
    
    path('teacher\u dashboard/',views.TeacherDashboard,name='teacher\u dashboard')
    
    您的URL不接受任何参数。您需要允许URL包含您将在视图中使用的数据

    urlpatterns = [ 
        path("teacher_dashboard/<int:teacher>/", views.TeacherDashboard, name="teacher_dashboard")
    

    在代码的另一点上,如果我看到一个名为
    is_teacher
    的变量,我希望看到一个
    bool
    ,因为它要么是教师,要么不是教师。因此,我建议您也将其更改为
    teacher=teacher.objects.get(profile_id=user.id)
    ,因为您正在从数据库获取一个teacher对象。

    使用重定向方法重定向用户,该方法现在需要一个附加到is teacher的url,例如,假设我正在重定向到页面重定向('app:home',{id:1})这将转换为localhost:8000/home/1,而不是您所期望的localhost:8000/home,因此您需要更新url.py中的路径。好的,我认为这是一个很好的解释。。。。谢谢,但markwalker我想发送一个查询集,我是说所有对象都要发送到新的视图函数。@MuhammadNaveed你不能这样做,你不能将查询集传递到URL。而你的代码并没有反映这一点。您正在执行的是
    获取
    而不是
    筛选
    。如果需要查询集,则必须使用传递给它的信息在视图中进行查询。因此,如果查询将使用
    教师
    ID,然后按照我所解释的那样传递它&然后使用传入的ID创建查询集。好的,我知道了,但是我该怎么做才能从数据库中获取大量记录,并将此数据发送到重定向视图page@MuhammadNaveed您可以使用常量缓存来缓存数据键,可用于检索视图中的数据。但必须有一个更简单/更好的解决方案。然而,这超出了这个问题的范围,所以如果你不能解决这个问题,我会提出一个单独的问题。