django views.py下 怎么查询关联表和被关联表的全部字
不知道你这个问题是否已经解决, 如果还没有解决的话:表单我们构建好了,只有一个 username 的字段,但是作为演示已经可以了。接下来我们在 views.py 编写以下代码:
from django.shortcuts import render
from django.http import HttpResponse
from webapp.models import Test
from .forms import NameForm
from django.http import HttpResponseRedirect
# 输出表单信息
def login(request):
if request.method == 'POST':
form = NameForm(request.POST)
if form.is_valid():
print(form) # 打印一下
# 重定向
return HttpResponseRedirect('/success/')
else:
pass
# 返回成功信息
def success(request):
return HttpResponse("success")
Form 实例具有 is_valid()方法,该方法为其所有字段运行验证例程。 调用此方法时,如果所有字段都包含有效数据,它将:
当我们访问这个视图用的是 GET 请求的时候,它会创建一个空的表单实例并将其放置在模板上下文中进行渲染。这是我们首次访问这个 URL 时能预料到会发生的情况
如果表单提交用到的是 POST 请求,那么该视图将再次创建一个表单实例并使用请求中的数据填充它: form = NameForm(request.POST) 这叫 “绑定数据到表单”(现在它是一张绑定的表单)
当我们调用 is_valid() 方法时:如果不为 True,带着表单返回到模板。这次表单不再为空(未绑定),所以 HTML 表单将用之前提交的数据进行填充,放到可以根据需要进行编辑和修正的位置
如果 is_valid() 为 True,我们就能在其 cleaned_data 属性中找到所有通过验证的表单数据。我们可以在发送一个 HTTP 重定向告诉浏览器下一步去向之前用这些数据更新数据库或者做其他处理
当然了,我们编写了 views.py 文件之后还要在 urls.py 中添加途径
from django.contrib import admin
from django.urls import path
from webapp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('login_page/',views.login_page),
path('login/',views.login),
path('success/',views.success),
]
OK,我们重启一下服务,访问 http://127.0.0.1:8000/login_page/
点击 submit 提交,报错了
通过报错信息我们可以知道
这个报错解决很简单,在报错信息已经为我们提出了需要在表单中增加 {% csrf_token %},如下:
我们再次访问一下:
点击提交
OK,已经返回成功信息,我们看下控制台的输出
可以看到我们在表单中输入的值已经绑定到表单中了
左外连接查询和右外连接查询做union操作