如何使用脆皮形式格式化 django-filters?

2024-02-06

是否可以使用 django-crispy-forms 格式化 django_filters 过滤器表单?我一直在尝试这样做,但是django_filters.FilterSet似乎不接受脆脆的表单格式(来自 DeviceFilter 类)。它也不会给出错误。似乎唯一能够给出格式的是{{ filter.form|crispy }}但我希望能够在 python 中做到这一点FormHelper().

过滤器.py

from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Submit, Row, Column
import django_filters

class DeviceFilter(django_filters.FilterSet):

    device_type = django_filters.ModelChoiceFilter(lookup_expr='exact', field_name='device_type__pk',
                                                   queryset=None)
    device_group = django_filters.ModelChoiceFilter(lookup_expr='exact, field_name='device_group__pk',
                                                   queryset=None)

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.filters['device_type'].queryset = DeviceType.objects.filter(owner=self.request.user)
        self.filters['device_group'].queryset = DeviceGroup.objects.filter(owner=self.request.user)
        self.helper = FormHelper()
        self.helper.layout = Layout(
            Row(
                Column('device_type', css_class='form-group col-md-6 mb-0'),
                Column('device_group', css_class='form-group col-md-4 mb-0'),
                css_class='form-row'
            ),
            Submit('submit', 'filter')
        )

    class Meta:
        model = Device
        fields = {}

template

<!-- filter -->
{% if filter %}
    <form method="get">
        {{ filter.form|crispy  }}
    </form>

{% endif %}

UPDATE

我分享我的最终解决方案。这使得:

class DeviceForm(forms.ModelForm):

    class Meta:
        model = Device
        fields = [
            'device_id',
            'device_type',
            'device_group',
        ]


    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.layout = Layout(
            Row(
                Column('device_created', css_class='form-group col-12'),
                css_class='form-row'
            ),
            Row(
                Column('device_id', css_class='form-group col-12'),
                css_class='form-row'
            ),
            Row(
                Column('device_type', css_class='form-group col-6 mb-0'),
                Column('device_group', css_class='form-group col-6 mb-0'),
                css_class='form-row'
            ),
        )

class DeviceFilter(django_filters.FilterSet):

    device_created = django_filters.DateTimeFromToRangeFilter(label='', widget=MyRangeWidget(
        {
            'class': 'datetimepicker form-control',
            'placeholder': 'From'
        }, {
            'class': 'datetimepicker form-control',
            'placeholder': 'To'
        }
    ))


    device_id = django_filters.CharFilter(label='', lookup_expr='icontains', widget=TextInput(attrs={
        'placeholder': 'Enter Device Id'
    }))

    device_group = django_filters.ModelChoiceFilter(label='', lookup_expr='exact',
                                                    field_name='device_group__pk',
                                                    queryset=None, empty_label=('Select Group'))

    device_type = django_filters.ModelChoiceFilter(label='', lookup_expr='exact',
                                                   field_name='device_type__pk',
                                                   queryset=None, empty_label=('Select Type'))


    class Meta:
        form = DeviceForm

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.filters['device_type'].queryset = DeviceType.objects.filter(owner=self.request.user)
        self.filters['device_group'].queryset = DeviceGroup.objects.filter(owner=self.request.user)

尝试将助手设置为表单

def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    # Your code
    self.form.helper = FormHelper()
    # Your code

或者尝试在元类中设置表单

class DeviceFilter(django_filters.FilterSet):
    # Your code
    class Meta:
        form = YourCustomFormClass
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用脆皮形式格式化 django-filters? 的相关文章

  • 如何在Django中获取某个组的所有用户?

    我想获取 Django 组中所有用户的列表 例如 User objects filter group Staff 我在文档中的任何地方都找不到如何执行此查询 以下查询解决了我的问题 User objects filter groups na
  • 如何在 Django-admin 中呈现自定义嵌套复选框树视图?

    我有一个bugs映射到的模型categories 类别可以拥有其他类别 class Bug models Model categories models ManyToManyField Category name models CharFi
  • 在 Django 中获取数据库类型[重复]

    这个问题在这里已经有答案了 我需要能够确定 Django 运行时使用的数据库类型 MYSQL False if
  • django 尝试了这些 url 模式

    当我尝试访问我的站点时 它会给出以下信息 使用 mysite urls 中定义的 URLconf Django 按以下顺序尝试了这些 URL 模式 管理员 当前 URL 与其中任何一个都不匹配 如果我访问该网站并附加 admin 它会将我带
  • 覆盖现有的 django-admin 命令

    除了编写自定义 django admin 命令之外 这是有详细记录的 https docs djangoproject com en 1 9 howto custom management commands 我希望能够覆盖现有命令 例如ma
  • django-rest-swagger 与模型序列化器不能很好地配合吗?

    我已经离开了 django rest swagger 的文档github页面 https github com marcgibbons django rest swagger 更具体地说 是 它是如何工作的 部分 它表明您可以为其余 api
  • Django 教程 - ImproperlyConfigured 异常(未安装 pytz)

    我目前正在 OSX 上使用 1 6 1 版和 2 7 5 版的 python 来完成官方 Django 教程 我正在研究第二部分 即管理界面 当我尝试访问 admin polls poll 时 收到以下错误报告 ImproperlyConf
  • “NoneType”对象在 Django 项目中不可迭代

    当我尝试使用 python manage py runserver ip port 运行我的 django 应用程序时 出现 NoneType 对象不可迭代 错误 而如果我使用 python manage py runserver 0 0
  • Django 单元测试数据库没有被拆除?

    我编写了一些单元测试来测试我的 Django 应用程序 特别是一个测试套件中包含大量代码setUp 功能 所述代码的目的是为数据库创建测试数据 是的 我了解固定装置 并且选择在这种情况下不使用它们 当我运行单元测试套件时 运行的第一个测试通
  • Django - 如何从中间件修改模板上下文

    我正在创建一个 Django 中间件 它通过会话管理 购物车 我能够成功修改会话数据 如下所示 class ShoppingCartMiddleware def init self get response self get respons
  • 带有中间页面的 Django 管理操作:未获取信息

    我正在尝试创建一个管理操作 将自定义时间增量添加到某个日期 时间增量将从中间页面的输入中读取 确认后 我将将该增量应用到之前选择的每个实例 使用此代码 我针对这个问题进行了简化 我无法获取输入的时间增量的值 我无法判断用户是否按下了 应用
  • 使用 pyinstaller 将 Django 移植到桌面应用程序

    我正在尝试将 django 项目转换为桌面应用程序 我已经下载了 pyinstaller 的开发人员版本 github pyinstaller pyinstaller hookutils py 修改如下 http www pyinstall
  • 在 django 视图中执行阻塞请求

    在我的 django 应用程序的一个视图中 我需要执行相对较长的网络 IO 操作 问题是其他请求必须等待该请求完成 即使它们与该请求无关 我做了一些研究并偶然发现了 Celery 但据我了解 它用于执行独立于请求的后台任务 所以我不能使用任
  • 如何为不存在的第三方应用程序覆盖 Django apps.py 及其 AppConfig?

    从 Django 1 7 开始AppConfig添加了功能 建议将 post migrate 信号放入ready 其定制实施的一部分 https docs djangoproject com en stable ref signals po
  • Django 数据库迁移与 postgres 失败

    我对模型做了一些更改 然后运行了 python 管理 py makemigrations python 管理 py 迁移 我得到了这个回溯 Operations to perform Synchronize unmigrated apps
  • Pycharm错误:配置不正确

    在我的 DEV 计算机意外关闭后 当返回 Pycharm 项目时 我注意到我正在编辑的 Django 视图文件 有 700 多行 发生这种情况时 它完全是空的 我设法从备份中恢复它 那里没有损失 尝试调试时出现问题 它返回此错误 不正确配置
  • 优化 Django Queryset for 循环

    如何优化以下查询集 link goal for link in self child links all 我想摆脱 for 循环并只访问数据库一次 我有以下代码 class Goal models Model name models Cha
  • 检查空查询集

    我想确认这是否是检查空查询集的正确方法 如果这就是为什么我会遇到 UNIQUE 约束错误 syn check Synonym objects filter MD objects get filter dict synonym type St
  • django 创建多类型用户的最佳方法

    我想在 django 中创建多个用户 我想知道哪种方法是最好的 class Teachers models Model user models ForeignKey User is teacher models BooleanField d
  • Django 无法覆盖表单字段小部件

    我需要在表单中生成基于列的复选框 myapp templates forms widgets custom html div class row for group options index in widget optgroups for

随机推荐

  • spring cloud aws多个sqs监听器

    我的项目中有2个sqs监听器 我希望其中之一具有相同的设置 而其中之一具有不同的设置 我想要更改的唯一值是 maxNumberOfMessages 最实用的方法是什么 我想为其中一个侦听器设置不同的 maxNumberOfMessages
  • ViewPager 内的 ListFragments

    我正在写我的第一个基于片段的应用程序并遇到了一些我无法使用 API 或 Stackoverflow 解决的严重问题 我正在使用一个浏览器在两个列表之间滑动 每个列表都有一个header按钮创建一个新的列表元素 类似于本机 Android 闹
  • 如何在页面加载时显示ajax加载gif动画?

    我尝试在我的网站中实现 AJAX 当单击 divchangepass 的内容时 它应该加载changepass template php 这是我为此使用的代码 function changepass click function block
  • 单元测试核心数据 - 异常退出,代码为 134

    我正在为我的核心数据应用程序设置单元测试 我在一个非常简单的测试中遇到了一个奇怪的问题 我收到的错误是 Developer Tools RunPlatformUnitTests include 451 0 Test rig Develope
  • asyncio create_task 永远运行

    我有以下代码 import asyncio loop asyncio get event loop async def while loop n 0 while True print f n await asyncio sleep 2 n
  • “角度未定义”的原因是什么

    我正在关注以下视频教程蛋头io http www egghead io 但在尝试效仿他创建工厂时的榜样 参见视频 我不断收到 角度未定义 参考错误 但我已经包含了角度脚本 这是我的 html 页面 div div div div
  • 如何使用 jackson 遍历生成的 json 模式并将自定义属性放入 json 模式

    type object properties name type string id type string i type integer p type object properties name type string id type
  • gnu screen:可以在最后调用的程序之后自动命名窗口吗?

    有没有办法自动让每个窗口将其名称更改为您从该窗口运行的最后一个程序的名称 这比手动重命名窗口更方便 是的 您可以使用 shelltitle 来执行此操作 假设您使用 bash 以下内容应该可以工作 将其添加到您的 screenrc shel
  • “英雄单位”是什么意思?

    英雄 一词是什么意思 为什么用它来命名网站 页面的 主要信息 具体来说 我想知道术语 英雄 或短语 英雄单位 是否是网页设计中使用的一些常见术语 但我却忽略了 英雄 一词是电影 电视道具设计师使用的 英雄道具 是为特写镜头而设计的道具 它有
  • 在 Mac 上未收到自定义记录区域的 CloudKit 推送通知

    我已设置自定义区域订阅以接收来自自定义记录区域的 静默 推送通知 我的 iOS 设备上一切正常 但我无法在 Mac 上接收通知 要注册通知 我正在注册通知类型applicationDidFinishLaunching NSApplicati
  • 我在我的博客页面上收到有关时区设置的警告[重复]

    这个问题在这里已经有答案了 正在显示PHP 日期选择器 http www triconsole com php calendar datepicker php在我的博客页面上使用简码 但低于警告 Warning date function
  • crypto.randomBytes 熵源耗尽

    我尝试使用以下命令生成大量 gt 1GB 伪随机数据crypto randomBytes 方法 但我无法为耗尽的熵源生成异常 以查看在出现这种可能的异常时我的应用程序的行为是什么 来自 Node JS 文档 注意 如果没有足够的数量 将抛出
  • Spring Data - MongoDB - JUnit 测试

    我有一个关于 Spring Data MongoDB 和 JUnit 测试的问题 RunWith SpringJUnit4ClassRunner class SpringApplicationConfiguration classes Us
  • moqing静态方法调用c#库类

    这似乎是一个很简单的问题 但我似乎找不到关键字来影响我的搜索 我试图通过模拟此方法调用中的所有对象来进行单元测试 我可以对我自己的所有创作执行此操作 除了这个 public void MyFunc MyVarClass myVar Imag
  • Rserve 服务器:如何终止阻塞实例(评估永远)?

    我需要执行Reval以多线程的方式 这是Rserve提供得相当好 但是 如果一个实例的评估时间太长 我需要能够关闭正在计算阻塞评估的实例 据我测试 给定的实例将拒绝关闭 直到评估完成 显然 它需要在再次监听之前获取结果 所以这是我的问题 有
  • 如何使用 API 从 Google 文档中提取标题

    目前正在尝试创建一个 python 脚本来检查 google 文档的各种 SEO 页面指标 谷歌文档 API 有一个好样本 https developers google com docs api samples extract text展
  • #如果忽略 DEBUG(VB.net 或 C#)

    我的代码中有几个到目前为止运行良好的代码 If DEBUG Then some code here End If 现在 我注意到 最近 If DEBUG then End If 中的代码 也在 释放模式 下执行 这很奇怪 以前没有发生过 可
  • 显示轨迹指示器

    从图像中您可以看到 在左侧发射的球在其后面发射 与计算的轨迹不符 我使用 SO 中的方程绘制球轨迹question https stackoverflow com questions 10401644 mousejointdef libgd
  • 由于 Windows Vista Home Premium 版本缺少 Windows 身份验证 IIS 组件...有修复吗?

    显然 Windows Vista Home Basic 和 Premium 都没有附带 IIS 的集成 Windows 身份验证 您需要商业版 所以有人知道如何为 IIS 安装 Windows 身份验证吗 我进入程序和功能 gt 打开或关闭
  • 如何使用脆皮形式格式化 django-filters?

    是否可以使用 django crispy forms 格式化 django filters 过滤器表单 我一直在尝试这样做 但是django filters FilterSet似乎不接受脆脆的表单格式 来自 DeviceFilter 类 它