如何在django python控制台中打印结果

如何在django python控制台中打印结果,python,django,django-forms,django-views,Python,Django,Django Forms,Django Views,我创建了一个具有登录选项的表单。我想在python控制台中显示用户名标签中给出的用户名。 这是我的views.py文件: from django.views.generic import TemplateView from django.shortcuts import render from app.forms import * class login(TemplateView): template_name = 'app/login.html' def clean(self)

我创建了一个具有登录选项的表单。我想在python控制台中显示用户名标签中给出的用户名。 这是我的views.py文件:

from django.views.generic import TemplateView
from django.shortcuts import render
from app.forms import *
class login(TemplateView):
    template_name = 'app/login.html'
    def clean(self):
        form = RegistrationForm()
        print form.cleaned_data['username']
from django import forms


class RegistrationForm(forms.Form):
    username = forms.CharField(label='Username', max_length=30)
    password = forms.CharField(label='Password',
                      widget=forms.PasswordInput())
    def clean_password(self):
        username = self.cleaned_data['username']
以下是我的forms.py文件:

from django.views.generic import TemplateView
from django.shortcuts import render
from app.forms import *
class login(TemplateView):
    template_name = 'app/login.html'
    def clean(self):
        form = RegistrationForm()
        print form.cleaned_data['username']
from django import forms


class RegistrationForm(forms.Form):
    username = forms.CharField(label='Username', max_length=30)
    password = forms.CharField(label='Password',
                      widget=forms.PasswordInput())
    def clean_password(self):
        username = self.cleaned_data['username']

这不是我想要的。请帮我解决这个问题。

您正在创建一个新的表单对象,但没有提供POST数据:

form = RegistrationForm(data=self.request.POST)
正如Daniel在他的评论中所说的那样,
clean
方法可能永远不会为
TemplateView
调用。您可能希望使用
FormView
或干脆使用
View

您的
clean_密码
功能很可能也不正确。它创建局部变量
username
,该变量在函数之后被丢弃:

def clean_password(self):
    username = self.cleaned_data['username']

您正在创建新的表单对象,但未提供POST数据:

form = RegistrationForm(data=self.request.POST)
正如Daniel在他的评论中所说的那样,
clean
方法可能永远不会为
TemplateView
调用。您可能希望使用
FormView
或干脆使用
View

您的
clean_密码
功能很可能也不正确。它创建局部变量
username
,该变量在函数之后被丢弃:

def clean_password(self):
    username = self.cleaned_data['username']

如果希望在基于类的视图中处理表单,则需要使用理解表单的基类。在您的情况下,FormView是正确的

除此之外,还需要重写在渲染过程中实际调用的方法。您不能仅仅定义一个随机方法并期望它被调用。表单验证后调用的FormView方法称为
form\u valid
。因此:

class login(FormView):
    template_name = 'app/login.html'
    form_class = RegistrationForm

    def form_valid(self, form):
        print form.cleaned_data['username']
        return super(FormView, self).form_valid(form)

如果希望在基于类的视图中处理表单,则需要使用理解表单的基类。在您的情况下,FormView是正确的

除此之外,还需要重写在渲染过程中实际调用的方法。您不能仅仅定义一个随机方法并期望它被调用。表单验证后调用的FormView方法称为
form\u valid
。因此:

class login(FormView):
    template_name = 'app/login.html'
    form_class = RegistrationForm

    def form_valid(self, form):
        print form.cleaned_data['username']
        return super(FormView, self).form_valid(form)

请您提供课程的全部代码
login
。我能问一下为什么吗?什么不起作用?它做什么?为什么要在视图中定义
clean
方法?“你凭什么认为那会起什么作用?”赛斯说,它什么作用也没有。它只是运行网页。您能提供类的全部代码吗
login
。我能问一下为什么吗?什么不起作用?它做什么?为什么要在视图中定义
clean
方法?“你凭什么认为那会起什么作用?”赛斯说,它什么作用也没有。它只是运行网页。我更改了代码,它仍然没有给出我想要的输出。我更改了代码,它仍然没有给出我想要的输出。谢谢。但它仍然没有打印我在登录表单中给出的用户名谢谢你。但它仍然没有打印我在登录表单中给出的用户名