Django - 一个视图中的多个模型(表)

2024-05-26

操作系统-Windows10 Python-3.7.4 姜戈 - 2.1

我想展示这个模型。像这样在此输入图像描述 https://i.stack.imgur.com/2UERg.jpg

但我不知道。我怎样才能做到这一点。我尝试了三个月来解决这个问题:( 我已经有了 MySQL 数据库。所以,我必须保留这些数据结构(模型)

管理员继承? 覆盖 Django Admin 中的查询集?

我不知道该怎么做。我不懂Queryset,stORM...

因为我刚刚开始使用Django 3个月。

我必须解决这个问题。一个视图(模板)中的多个模型(表==类)

但我不能..请告诉我提示,解决方案,任何东西

模型.py

from django.conf import settings
from django.db import models
from django.utils import timezone

class Exam(models.Model):
    idexam = models.IntegerField(primary_key=True)
    trueanswernum = models.IntegerField(db_column='trueAnswerNum', blank=True, null=True)  # Field name made lowercase.
    falseanswernum = models.IntegerField(db_column='falseAnswerNum', blank=True, null=True)  # Field name made lowercase.
    exammain = models.TextField(db_column='examMain', blank=True, null=True)  # Field name made lowercase.
    questionsubmain = models.TextField(db_column='questionSubMain', blank=True, null=True)  # Field name made lowercase.
    answerno1 = models.TextField(db_column='answerNo1', blank=True, null=True)  # Field name made lowercase.
    answerno2 = models.TextField(db_column='answerNo2', blank=True, null=True)  # Field name made lowercase.
    answerno3 = models.TextField(db_column='answerNo3', blank=True, null=True)  # Field name made lowercase.
    answerno4 = models.TextField(db_column='answerNo4', blank=True, null=True)  # Field name made lowercase.
    rightanswer = models.IntegerField(db_column='rightAnswer', blank=True, null=True)  # Field name made lowercase.
    originalremark = models.TextField(db_column='originalRemark', blank=True, null=True)  # Field name made lowercase.
    writer = models.CharField(max_length=45, blank=True, null=True)
    writingdate = models.DateTimeField(db_column='writingDate', blank=True, null=True, auto_now_add=True)  # Field name made lowercase.
    sources = models.CharField(max_length=45, blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'boards_exam'

    def __str__(self):
        return self.exammain

class Examhistory(Exam):
    idexamhistory = models.AutoField(db_column='idExamhistory', primary_key=True)  # Field name made lowercase.
    idexam = models.IntegerField()
    examyear = models.IntegerField(db_column='examYear')  # Field name made lowercase.
    examtypecode = models.IntegerField(db_column='examTypeCode')  # Field name made lowercase.
    yearexamnum = models.IntegerField(db_column='yearExamNum', blank=True, null=True)  # Field name made lowercase.
    examsubj = models.IntegerField(db_column='examSubj', blank=True, null=True)  # Field name made lowercase.
    examnum = models.IntegerField(db_column='examNum', blank=True, null=True)  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'boards_examhistory'
        unique_together = (('idexamhistory', 'idexam'),)


class Examtype(models.Model):
    examtypecode = models.IntegerField(db_column='examTypeCode', primary_key=True)  # Field name made lowercase.
    examtypename = models.CharField(db_column='examTypeName', max_length=20, blank=True, null=True)  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'boards_examtype'


class Lawinfo(models.Model):
    lawnamecode = models.IntegerField(db_column='lawNameCode', primary_key=True)  # Field name made lowercase.
    lawname = models.CharField(db_column='lawName', max_length=25, blank=True, null=True)  # Field name made lowercase.
    lawadmin = models.CharField(db_column='lawAdmin', max_length=15, blank=True, null=True)  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'boards_lawinfo'


class Lawtext(models.Model):
    idlawtext = models.AutoField(primary_key=True)
    lawnamecode = models.IntegerField(db_column='lawNameCode', blank=True, null=True)  # Field name made lowercase.
    lawcategory = models.IntegerField(db_column='lawCategory', blank=True, null=True)  # Field name made lowercase.
    lawcontent_jo = models.CharField(db_column='lawContent_jo', max_length=5, blank=True, null=True)  # Field name made lowercase.
    lawcontent_hang = models.CharField(db_column='lawContent_hang', max_length=5, blank=True, null=True)  # Field name made lowercase.
    lawcontent_ho = models.CharField(db_column='lawContent_ho', max_length=5, blank=True, null=True)  # Field name made lowercase.
    lawcontent_mok = models.CharField(db_column='lawContent_mok', max_length=5, blank=True, null=True)  # Field name made lowercase.
    lawtext = models.TextField(db_column='lawText', blank=True, null=True)  # Field name made lowercase.
    update_date = models.DateTimeField(blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'boards_lawtext'


class Relatedlaw(models.Model):
    idrelatedlaw = models.AutoField(primary_key=True)
    idexam = models.IntegerField()
    lawnamecode = models.IntegerField(db_column='lawNameCode', blank=True, null=True)  # Field name made lowercase.
    lawcategory = models.CharField(db_column='lawCategory', max_length=5, blank=True, null=True)  # Field name made lowercase.
    lawcontent_jo = models.CharField(db_column='lawContent_jo', max_length=5, blank=True, null=True)  # Field name made lowercase.
    lawcontent_hang = models.CharField(db_column='lawContent_hang', max_length=5, blank=True, null=True)  # Field name made lowercase.
    lawcontent_ho = models.CharField(db_column='lawContent_ho', max_length=5, blank=True, null=True)  # Field name made lowercase.
    lawcontent_mok = models.CharField(db_column='lawContent_mok', max_length=5, blank=True, null=True)  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'boards_relatedlaw'
        unique_together = (('idrelatedlaw', 'idexam'),)

# Create your models here.

Views.py

from django.shortcuts import render, get_object_or_404
from django.utils import timezone
from .models import Exam

def exam_list(request):
    exams = Exam.objects.filter(writingdate__lte=timezone.now()).order_by('writingdate')
    return render(request, 'boards/exam_list.html', {'exams': exams})

def exam_detail(request, pk):
    exam = get_object_or_404(Exam, pk=pk)
    return render(request, 'boards/exam_detail.html', {'exam': exam})
# Create your views here.

admin.py

from django.contrib import admin
from .models import Exam

admin.site.register(Exam)
# Register your models here.

我可能不理解你的应用程序,但是如果你想从视图中的多个模型加载数据,你可以覆盖get_context_data基于通用类的视图的方法。这是一个使用的示例模板视图 https://docs.djangoproject.com/en/3.0/ref/class-based-views/base/#django.views.generic.base.TemplateView.

from django.views.generic.base import TemplateView
from .models import Exam, Lawtext


class PageView(TemplateView):

    template_name = "pagename.html"

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['exams'] = Exam.objects.all()
        context['lawtexts'] = Lawtext.objects.all()
        return context

然后在你的appname/templates/appname/pagename.html您可以访问在视图中查询的数据。在本例中,我们从模型 Exam 和 Lawtext 获取所有数据。您可以轻松扩展它。

{% for exam in exams %}
    <h4>{{exam.exammain}} </h4>
    <p>{{exam.rightanswer}}</p>
{% endfor %} 

{% for lawtext in lawtexts %}
    <p>{{lawtext.lawnamecode}}</p>
    <p>{{lawtext.lawcategory}}</p>
{% endfor %} 

好的,所以我看到您在我开始写答案后添加了您的观点...... 如果您使用基于函数的视图并使用返回render() https://docs.djangoproject.com/en/3.0/topics/http/shortcuts/#django.shortcuts.render,您可以用类似的方式执行此操作。你的views.py 看起来像这样:

from .models import Exam, Lawtext

def exam_list(request):
    exams = Exam.objects.filter(writingdate__lte=timezone.now()).order_by('writingdate')
    lawtexts = Lawtext.objects.all()
    return render(request, 'boards/exam_list.html', {'exams': exams, 'lawtexts': lawtexts})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django - 一个视图中的多个模型(表) 的相关文章

  • Django + WSGI:刷新问题?

    我正在开发一个 Django 网站 我在实时服务器上进行所有更改 只是因为这样更容易 问题是 它似乎时不时地喜欢缓存我正在处理的 py 文件之一 有时 如果我频繁点击刷新 它会在页面的旧版本和新版本之间来回切换 我的设置或多或少类似于 Dj
  • manage.pysyncdb 不会为某些模型添加表

    今天我的第二个不太熟练的问题 我有一个 django 项目 其中安装了四个应用程序 当我运行manage py syndb时 它只为其中两个创建表 据我所知 我的任何模型文件都没有问题 并且所有应用程序都在我的设置文件中的 INSTALLE
  • 如何将两个django模型(表)合并为一个模型(表)

    我想合并两个 django 模型并创建单个模型 我们假设 我有第一个表表 A 其中包含一些列和数据 Table A col1 col2 col3 col4 x1 x2 x3 x4 y1 y2 y3 y4 我还有另一个表 Table B 其中
  • 自定义 django-rest-framework-simplejwt 的 JWT 响应

    我正在设置 Django 来发送 JWT 响应而不是视图 我尝试使用 django rest framework simplejwt 这个框架中提供了一个函数TokenObtainPairView as view 返回一对 jwt 我需要使
  • GeoDjango:距离对象不可序列化

    我刚刚学习 geo django 我可以找出所有地方到一个点的距离 但是当我使用 values方法注释distance场 我得到 TypeError Object of type Distance is not JSON serializa
  • Django 休息注册

    我正在使用 Django rest auth https github com Tivix django rest auth https github com Tivix django rest auth 在我的 django 项目中用于登
  • 如何使用 keyTextTransform() 进行嵌套 json?

    我的模型有一个 json 字段 我可以使用以下查询访问 jsonfield key1 from django contrib postgres fields jsonb import KeyTextTransform MyModel obj
  • 我可以从另一个视图中调用一个视图吗?

    我的一个视图需要添加一个项目以及其他功能 但我已经有另一个专门添加项目的视图 我可以做类似的事情吗 def specific add item view request item Item objects create foo reques
  • Django modelAdmin __init__ 和内联

    嘿 我对 Django 相当陌生 我正在寻找动态编辑管理类变量 完整的想法是在添加时隐藏内联 仅在编辑时显示 但我在这里提炼这个问题 有人可以解释为什么这不起作用吗 class dbTablePermissionInline admin T
  • Django Rest Framework 分页设置 - 内容范围

    6 30 15 我怎样才能让这个问题变得更好并且对其他人更有帮助 反馈会有帮助 谢谢 我使用 DRF 作为 Dojo Dgrid Web 应用程序的服务器端 Dojo 需要来自服务器的内容范围或范围响应 目前它不发送任何内容 因此 dgri
  • 嵌套字段序列化器 - 数据丢失

    与此主题相关 https stackoverflow com questions 27434593 django rest framework 3 0 create or update in nested serializer 你好 我无法
  • Tastypie 与 application/x-www-form-urlencoded

    我有点难以弄清楚下一步应该做什么 我正在使用 tastypie 为我的 Web 应用程序创建 API 从另一个应用程序 特别是 ifbyphone com 我收到一个没有标题的 POST 如下所示 post data http myapp
  • 数据库错误:值对于类型字符变化来说太长(100)

    我有一个 Django 网站 运行我们几年前在内部构建的迷你 CMS 它使用 postgresql 保存简单的标题和一段文本时 出现以下错误 value too long for type character varying 100 奇怪的
  • 在 Django 中翻译文件时的 Git 命令

    我在 Django 中有一个现有的应用程序 我想在页面上添加翻译 在页面上我有 trans Projects 在 po 文件中我添加了 templates staff site html 200 msgid Projects msgid P
  • 如何发送正确的授权标头以进行基本身份验证

    我正在尝试从 API 发布数据 但无法通过基本身份验证 I try ajax type POST url http theappurl com api v1 method data crossDomain true beforeSend f
  • Django REST序列化器:创建对象而不保存

    我已经开始使用 Django REST 框架 我想做的是使用一些 JSON 发布请求 从中创建一个 Django 模型对象 然后使用该对象而不保存它 我的 Django 模型称为 SearchRequest 我所拥有的是 api view
  • 如何在 success_url 中传递上下文数据?

    我制作了一个表单 我希望再次返回相同的表单 这次使用可在我的模板中使用的上下文数据来显示表单已成功发送 我怎样才能做到这一点 class ContactUsView FormView form class ContactUsForm tem
  • 在 Django 中定期运行一个函数

    我在 Django 中编写一个应用程序来监视一组服务器中的某些服务 我希望定期更新观点 到目前为止 我已经研究过编写自定义管理命令 链接在这里 http docs djangoproject com en dev howto custom
  • 为什么当我运行“python manage.pysyncdb --all”时会出现此错误?

    我正在尝试应用教程http docs django cms org en 2 1 3 getting started tutorial html http docs django cms org en 2 1 3 getting start
  • 发送用户注册密码,django-allauth

    我在 django 应用程序上使用 django alluth 进行身份验证 注册 我需要创建一个自定义注册表单 其中只有一个字段 电子邮件 密码将在服务器上生成 这是我创建的表格 from django import forms from

随机推荐

  • 如何使用 Eclipse 从我的设备检索我的应用程序的沙箱?

    我有一个 Android 应用程序 它使用共享首选项 我使用 Eclipse 在 Android 设备中运行该应用程序 我想拉整个sandbox来自设备到桌面这样我就可以手动查看sharedPreferences的内容 我点击了DDMS并点
  • 从关系数据库中“区分”对象

    我们的 win32 应用程序根据 MySQL 关系数据库中多个表中的数据组装对象 对于这样的对象 多个修订版本存储在数据库中 当存储某些内容的多个修订版本时 迟早您会问自己这样的问题 您是否可以想象两个修订版本之间的差异 所以我的问题是 比
  • Akka/Scala:映射 Future 与 pipelineTo

    In Akka参与者 在发送一个Future结果给另一个演员 A 映射Future发挥作用tell结果给演员 B 定义一个onSuccess未来的回调 其中tell结果给演员 C 管道Future结果给演员pipeTo 其中一些选项已在上一
  • 在Container上手动触发Pull刷新

    如果我想在加载表单后手动触发 Codename One 中的容器上的 拉取刷新 如果有人有任何想法 请告知 很简单 技巧就是使用showListener 假设这是起始代码 取自 Codename One 开发人员指南 拉动刷新 部分 htt
  • 计算唯一值的数量

    如果我有三列 orderNumber name email 我想计算表中有多少个唯一的电子邮件 我该怎么做 像这样的声明 SELECT count email FROM orders 给我总数 I tried SELECT DISTINCT
  • 如何将背景音乐添加到我的 spritekit 文件中

    有人可以给我一个快速简单的步骤 以便在我的应用程序加载后添加背景 m4a 音乐 它是一个精灵套件Xcode文件 音乐是m4a格式 谢谢 尝试用这个 import AVFoundation AVAudioPlayer backgroundMu
  • 如何将 NSDictionary 转换为 NSData,反之亦然?

    我正在发送NSString and UIImage使用蓝牙 我决定将两者都存储在NSDictionary然后将字典转换为NSData 我的问题是如何转换NSDictionary to NSData反之亦然 NSDictionary gt N
  • 为什么 Xcode 会为选择器列出自动完成方法?

    自从我升级到最新的 Xcode 以来 自动完成功能就列出了 删除线 方法selector目的 我无法判断这是 Xcode 的错误还是有一些我不知道的新语法更改 如果你把它插入你的 Playground 并删除里面的方法 selector t
  • 从 XElement 中删除属性

    请考虑这个 XElement
  • 如何在 R 中创建没有情节的图例?

    这是一个艺术项目 我创建了一个包含 5 种不同颜色的许多点的散点图 我想创建一个与绘图完全分开的图例 因为它不在绘图上 也不在绘图旁边 而是在它自己的窗口中 因此我可以将图例保存为它自己的 pdf 文件 这样我就可以将我的情节和图例分开打印
  • 我应该如何管理 MVC Core 中的 DbContext 生命周期?

    来自文档 https learn microsoft com en us aspnet core fundamentals dependency injection 实体框架上下文should添加到服务容器中 使用Scoped寿命 如果您这
  • PyPDF2 复制后返回空白 PDF

    def EncryptPDFFiles password directory pdfFiles success 0 Get all PDF files from a directory for folderName subFolders f
  • 如何使整个 jqGrid 禁用/只读

    如何使整个 jqGrid 禁用 只读 我有一个带有逻辑 编辑部分 的页面 当用户选择要编辑的内容时显示该页面 并在用户完成编辑 保存或取消 时隐藏该页面 显示编辑部分时 我禁用了页面上的几个其他元素 我想禁用他们在 jqGrid 中单击的能
  • 在iOS上模仿截图flash动画

    我正在寻找一种复制按 home lock 时播放的 闪烁 动画的方法 有谁知道这个动画是否可用 在 iOS 设备上 当您按下 home lock 并且屏幕闪烁白色时 您会截取屏幕截图 你说的是这个效果吗 如果是这样 请尝试以下操作 Add
  • mysql查询where条件比较char字段与int 0的一些现象

    有一桌 root localhost test 05 35 05 gt desc t Field Type Null Key Default Extra id int 11 NO PRI NULL auto increment studio
  • Objective c 中的 UIButton 虚线下划线

    正常下划线有效 但点下划线似乎不起作用 UIButton btn UIButton buttonWithType UIButtonTypeCustom btn frame CGRectMake 100 10 300 300 NSMutabl
  • 如何强制Emma代码覆盖率报告忽略某些方法?

    有些方法 例如自动生成的 getter setter equals 和 toString 对于测试来说是微不足道的 但是 如果不将它们添加到测试类中 代码覆盖率 使用 Emma 计算 就会降低 并可能导致我们的系统构建崩溃 如何强制 emm
  • 无需导航到设置页面即可打开定位服务?颤动飞镖

    我们正在从 Flutter 迁移到 Flutter 我们用这个线程来 在 Flutter 中如何实现这一点 当前导航到设置的临时代码 Future getCurrentLocation async Position position try
  • 将中间件与 Golang Gorilla mux 子路由器结合使用

    如何将中间件应用到 Go 中大猩猩工具包 http www gorillatoolkit org 多路复用器子路由器 我有以下代码 router mux NewRouter StrictSlash true apiRouter router
  • Django - 一个视图中的多个模型(表)

    操作系统 Windows10 Python 3 7 4 姜戈 2 1 我想展示这个模型 像这样在此输入图像描述 https i stack imgur com 2UERg jpg 但我不知道 我怎样才能做到这一点 我尝试了三个月来解决这个问