Django CreateView过滤选择字段中的外键

2024-04-11

我需要一些有关 Django 2 和 Python 3 的帮助。

我正在使用一个CreateView在我的数据库中添加新记录,但我需要为我的记录创建一个过滤器Aviso表单页面使选择字段(fieldturma)仅显示其中的实例representante是当前用户。

这是我的模型:

class Turma(models.Model):
    nome                    = models.CharField(max_length=120, blank=False, null=False, help_text='Obrigatório.')
    alunos                  = models.ManyToManyField(User, help_text='Obrigatório', related_name='alunos_matriculados')
    data_cadastro           = models.DateField(auto_now_add=True)
    representante           = models.ForeignKey(User, on_delete=models.PROTECT, blank=False, null=False)
    colegio                 = models.ForeignKey(Colegio, on_delete=models.PROTECT, blank=False, null=False, help_text='Obrigatório.')

class Aviso(models.Model):
    data_final              = models.DateField(auto_now=False, auto_now_add=False, blank=False, null=False, verbose_name="Data Final")
    comentarios             = models.TextField(null=True, blank=True)
    ultima_modificacao      = models.DateField(auto_now=True)
    data_post               = models.DateField(auto_now_add=True)
    turma                   = models.ForeignKey(Turma, on_delete=models.PROTECT, null=False, blank=False)
    materia                 = models.ForeignKey(Materia, on_delete=models.PROTECT, null=False, blank=False)

这是我的观点:

class AvisoCreateView(LoginRequiredMixin, CreateView):  #Cadastro de Aviso
    template_name = 'form.html'
    model = models.Aviso
    login_url = '/login/'
    success_url = reverse_lazy('visualizar_aviso')
    fields = [
        'turma',
        'materia',
        'tipo_aviso',
        'comentarios',
        'data_final'
    ]
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)

        context['titulo'] = 'Cadastrar aviso'
        context['input'] = 'Adicionar'
        return context

怎么可能呢?


您可以将查询集添加到ForeignKey 字段。

def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    context['form'].fields['turma'].queryset = Turma.objects.filter(representante=self.request.user)    
    context['titulo'] = 'Cadastrar aviso'
    context['input'] = 'Adicionar'
    return context
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django CreateView过滤选择字段中的外键 的相关文章

随机推荐

  • Ruby on Rails robots.txt 文件夹

    我即将启动 Ruby on Rails 应用程序 作为最后一个任务 我想设置机器人 txt文件 我找不到有关如何为 Rails 应用程序正确编写路径的信息 起始路径是否始终是 Ruby on Rails 应用程序或应用程序文件夹的根路径 那
  • 启用 iCloud 时 iOS 应用程序在首次启动时冻结

    我在 iOS 应用程序中启用了 iCloud 并且在首次启动应用程序时 当我按下应用程序中的任何视图时 应用程序会冻结大约 5 秒 我跟着this http timroadley com 2012 04 03 core data in ic
  • GitHub - 当非默认分支与主分支合并时,PR 链接的问题不会被关闭

    I have main作为默认分支和dev作为非默认 我创建了一个问题和一个 PR 以从新的合并temp分支到dev分支 在公关中 我曾提到过Resolves 1 当我将 PR 合并到dev分支 问题 1不会关闭 因为它是非默认分支 然后我
  • 使用 STM32F0 ADC 单独读取不同的输入

    STM32F072CBU 微控制器 我有多个 ADC 输入 并且希望单独读取它们 STMcubeMX 生成样板代码 假设我希望按顺序读取所有输入 但我无法弄清楚如何纠正这个问题 这篇博文 http blog koepi info 2015
  • 如何在本地执行 Capistrano 任务?

    我定义了一个自定义 Capistrano 任务 该任务应该在本地运行 在我的开发计算机上 desc Push code to Dreamhost task push do run git push dreamhost end 但是当我尝试跑
  • python dask DataFrame,支持(可并行化)行应用吗?

    我最近发现dask http dask pydata org en latest index html旨在成为一个易于使用的 python 并行处理模块 对我来说最大的卖点是它可以与熊猫一起使用 在阅读了其手册页后 我找不到一种方法来完成这
  • 如何获取Python字典中的最高键?

    d 苹果 9 橙子 3 葡萄 22 如何返回最大的键 值 编辑 如何制作一个按最大到最低值排序的列表 gt gt gt d apple 9 oranges 3 grapes 22 gt gt gt v k max v k for k v i
  • 包 inputenc 错误:Unicode char \u8:β 未设置为与 LaTeX 一起使用

    我在 Bibdesk 中的参考文献之一包含一些拉丁 希腊字符 例如 我在 TEXMAKER 中使用参考时收到错误 包 inputenc 错误 Unicode char u8 未设置为与 LaTeX 一起使用 我该如何设置它才能工作 尽管使用
  • 数据按用户分组为每周、每月

    我有一个高库存折线图 显示给定股票的每日和每周股价 问题是 当数据数组足够大时 每日数据点将被 采样 为每周数据点 而每周数据点将被采样为每月数据点 有什么方法可以根据需要将用户设置为每周或每月 提前致谢 检查一下数据分组 http www
  • 返回时如何刷新片段 UI

    我是 Android 新手 正在学习片段的知识 并为其制作了一个演示 因为我有一个片段 我们可以从中转到另一个活动 那里正在执行一些计算 然后我们当时回到片 段我想将该计算值显示到我的片段的文本视图中 那么我应该使用哪种生命周期方法来执行此
  • TypeError:无法解压不可迭代的 NoneType 对象

    我知道这个问题之前已经被问过 但我似乎无法让我的问题工作 import numpy as np def load dataset def download filename source http yaan lecun com exdb m
  • 如何从store方法获取上传的图片名称

    当我在 Laravel 中存储图像时 path request gt file myImage gt store public src 它返回完整路径 但如何仅获取给定的文件名 这是返回路径的示例 public src ltX4COwEmv
  • JPackages JavaFX + Spring boot 无法启动

    我正在尝试使用 Spring Boot 构建 JavaFX 应用程序并使用 jpackage 进行部署 当使用javafx maven plugin javafx run命令 我可以看到项目启动 但在将其构建为 msi安装程序 安装并启动
  • 使用 rvmrc 或 ruby​​-version 文件通过 RVM 设置项目 gemset?

    我使用RVM Ruby 版本管理器 https rvm io 为我的每个 Rails 项目指定 Ruby 版本和一组 gem 我有一个 rvmrc文件来自动选择 Ruby 版本和 gemset 每当我cd进入项目目录 安装 RVM 1 19
  • git-p4 正在吃掉我的图像文件

    所以 我可以使用 git p4 从 p4 导入 没有任何问题 一切似乎都正常 但我的 PNG 文件 也许还有其他文件 正在损坏 我读过有关 gitattributes 和行结束问题的内容 但我所做的一切似乎都无法改变最终结果 破碎的图像 我
  • 如何使用 joblib.dump 在 s3 上保存 sklearn 模型?

    我有一个 sklearn 模型 我想使用 joblib dump 将 pickle 文件保存在我的 s3 存储桶上 I used joblib dump model model pkl 将模型保存到本地 但我不知道如何将其保存到 s3 存储
  • C、C++ 初始化中的排序

    考虑以下初始化 C C int a f g struct int x y foo f g C struct goo goo int x int y goo b f g goo c f g C 11 goo d f g 是执行顺序f and
  • 将内核内置模块替换为可加载模块

    我开发了一个内核模块来管理 nf4 标签作为字符设备 我在内核之外开发了这个模块 并在开发阶段将其编译为可加载内核模块 即 ko 进行了测试 一旦驱动程序功能正常且足够稳定 我就使用补丁将其插入 Linux 内核源代码 v4 9 30 以便
  • 可执行的 Spring Boot 2 jar

    我尝试安装我的 Spring Boot 应用程序 第一步 我尝试创建一个可执行 jar 如下所述 https docs spring io spring boot docs current reference html deployment
  • Django CreateView过滤选择字段中的外键

    我需要一些有关 Django 2 和 Python 3 的帮助 我正在使用一个CreateView在我的数据库中添加新记录 但我需要为我的记录创建一个过滤器Aviso表单页面使选择字段 fieldturma 仅显示其中的实例represen