Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.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 将数据从视图传递到模板时出现问题?_Python_Django_Python 3.x - Fatal编程技术网

Python 将数据从视图传递到模板时出现问题?

Python 将数据从视图传递到模板时出现问题?,python,django,python-3.x,Python,Django,Python 3.x,我是Django Python新手,正在学习如何使用Django并将数据从视图传递到模板。现在,这是我的情况,我真的需要一些帮助来理解我哪里做错了 我试图将数据从一个视图传递到另一个模板,然后解析视图中的对象,但由于某些原因,模板中没有发生任何事情。我已经在my views.py中打印了注册对象,它工作正常,显示的信息正确无误。但当我将注册对象从视图发送到模板时,什么也没有发生 型号.py from django.db import models from datetime i

我是Django Python新手,正在学习如何使用Django并将数据从视图传递到模板。现在,这是我的情况,我真的需要一些帮助来理解我哪里做错了

我试图将数据从一个视图传递到另一个模板,然后解析视图中的对象,但由于某些原因,模板中没有发生任何事情。我已经在my views.py中打印了注册对象,它工作正常,显示的信息正确无误。但当我将注册对象从视图发送到模板时,什么也没有发生

型号.py

    from django.db import models

    from datetime import datetime
    from django.shortcuts import redirect

    # Create your models here.

    # Create your models here.

    class Registration(models.Model):
        first_name = models.CharField(max_length=255, null=True, blank=True)
        last_name = models.CharField(max_length=255, null=True, blank=True)
        email = models.CharField(max_length=255, null=True, blank=True)
        password = models.CharField(max_length=255, null=True, blank=True)
        mobilenumber = models.CharField(max_length=255, null=True, blank=True)
        created_on = models.DateTimeField(auto_now_add=True, blank=True)

        class Meta:

            ordering = ('first_name',)
    class Loginview(CreateView):
        model = Registration
        form_class = LoginForm
        template_name = "loginvalentis/valentis_login.html"

        def get(self, request):
            form = LoginForm()

            # returning form
            return render(request, 'loginvalentis/valentis_login.html', {'form': form});

        def form_valid(self,form):
            user_email = form.cleaned_data.get('email')
            user_password = form.cleaned_data.get('password')
            try:
                registration = Registration.objects.get(email=user_email)
                print ("registration",registration.mobilenumber)




                return redirect('/loginvalentis/home/',{'registration':registration})

            except Registration.DoesNotExist:
                user_info = None
                return redirect('/loginvalentis/login/')
视图.py

    from django.db import models

    from datetime import datetime
    from django.shortcuts import redirect

    # Create your models here.

    # Create your models here.

    class Registration(models.Model):
        first_name = models.CharField(max_length=255, null=True, blank=True)
        last_name = models.CharField(max_length=255, null=True, blank=True)
        email = models.CharField(max_length=255, null=True, blank=True)
        password = models.CharField(max_length=255, null=True, blank=True)
        mobilenumber = models.CharField(max_length=255, null=True, blank=True)
        created_on = models.DateTimeField(auto_now_add=True, blank=True)

        class Meta:

            ordering = ('first_name',)
    class Loginview(CreateView):
        model = Registration
        form_class = LoginForm
        template_name = "loginvalentis/valentis_login.html"

        def get(self, request):
            form = LoginForm()

            # returning form
            return render(request, 'loginvalentis/valentis_login.html', {'form': form});

        def form_valid(self,form):
            user_email = form.cleaned_data.get('email')
            user_password = form.cleaned_data.get('password')
            try:
                registration = Registration.objects.get(email=user_email)
                print ("registration",registration.mobilenumber)




                return redirect('/loginvalentis/home/',{'registration':registration})

            except Registration.DoesNotExist:
                user_info = None
                return redirect('/loginvalentis/login/')
Template result.html--('/loginvalentis/home/')


{%csrf_令牌%}
你好,世界
    {%对于注册中的用户%}
  • {{user.mobilenumber}
  • {%endfor%}

您的问题在于
重定向()函数。您试图通过它传递
注册
对象,但它不支持此操作,它的*args和**kwargs只是用于反转url的参数,请参见此处:

您应该使用其他方法将其传递给另一个视图,例如,仅将其id作为该视图url的参数传递(您必须适当地更改url配置),另一种方法是使用会话等

见:

但实际上,只要非常仔细地阅读本教程,对您来说就容易多了
相信我,这将非常值得你花时间,因为从你的问题我可以很容易地看出,你只是不明白自己在做什么。

如果你遇到的问题是主视图,那么你需要发布该视图,而不是明显不相关的登录视图。