如何在django python控制台中打印结果
我创建了一个具有登录选项的表单。我想在python控制台中显示用户名标签中给出的用户名。 这是我的views.py文件:如何在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)
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
方法?“你凭什么认为那会起什么作用?”赛斯说,它什么作用也没有。它只是运行网页。我更改了代码,它仍然没有给出我想要的输出。我更改了代码,它仍然没有给出我想要的输出。谢谢。但它仍然没有打印我在登录表单中给出的用户名谢谢你。但它仍然没有打印我在登录表单中给出的用户名