django views.py下 怎么查询关联表和被关联表的全部字段值 要求通时查询

django views.py下 怎么查询关联表和被关联表的全部字

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/688370
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:03_DJango视图views.py=====>>HTML、参数传递与接收数据
  • 除此之外, 这篇博客: Django实战(7)—— 表单处理中的 在 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()方法,该方法为其所有字段运行验证例程。 调用此方法时,如果所有字段都包含有效数据,它将:

    • 返回 True
    • 将表单的数据放到它的属性 cleaned_data 中

    当我们访问这个视图用的是 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验证失败。请求中止
    • 在模板中,{% csrf_token %}每个POST表单内都有一个模板标记,该标记以内部URL为目标
    • 如果您没有使用CsrfViewMiddleware,那么您必须 csrf_protect在使用csrf_token template标签的所有视图以及接受POST数据的视图上使用。
    • 该表单具有有效的CSRF令牌。登录另一个浏览器选项卡或登录后单击“后退”按钮后,您可能需要使用表单重新加载页面,因为登录后令牌会旋转

    这个报错解决很简单,在报错信息已经为我们提出了需要在表单中增加 {% csrf_token %},如下:
    在这里插入图片描述
    我们再次访问一下:
    在这里插入图片描述
    点击提交
    在这里插入图片描述
    OK,已经返回成功信息,我们看下控制台的输出
    在这里插入图片描述
    可以看到我们在表单中输入的值已经绑定到表单中了


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

左外连接查询和右外连接查询做union操作