当前位置: 首页 > 面试题库 >

动态更新ModelForm的Meta类

杜凯
2023-03-14
问题内容

我希望从我的观点动态更新ModelForm的内联Meta类。尽管此代码似乎更新从元类的排除列表,输出as_p()as_ul()等不反映更新的Meta排除。

然后,我假定在创建ModelForm时而不是在as_*()调用时生成html 。有没有办法强制更新HTML?

这甚至是最好的方法吗?我只是认为这 应该 工作。

有什么想法吗?

from django.forms import ModelForm

from testprogram.online_bookings.models import Passenger

class PassengerInfoForm(ModelForm):

    def set_form_excludes(self, exclude_list):
        self.Meta.exclude = excludes_list

    class Meta:
        model = Passenger
        exclude = []

问题答案:

Meta类用于动态构造表单定义-因此,在创建ModelForm实例时,不包含在不包含中的字段已经作为新对象的属性添加。

通常的方法是为每个可能的排除列表仅具有多个类定义。但是,如果您希望表单本身是动态的,则必须动态创建一个类定义。就像是:

def get_form(exclude_list):
    class MyForm(ModelForm):
        class Meta:
            model = Passenger
            exclude = exclude_list
    return MyForm

form_class = get_form(('field1', 'field2'))
form = form_class()

更新 :我只是重新回顾了这篇文章,并认为我会发布一种更惯用的方式来处理动态类:

def PassengerForm(exclude_list, *args, **kwargs):
    class MyPassengerForm(ModelForm):
        class Meta:
            model = Passenger
            exclude = exclude_list

        def __init__(self):
            super(MyPassengerForm, self).__init__(*args, **kwargs)

    return MyPassengerForm()

form = PassengerForm(('field1', 'field2'))


 类似资料:
  • 问题内容: 我基本上有一个具有多个选项卡的MainActivity。每个选项卡都是一个ShowListFragment,它扩展了Fragment。现在,每个选项卡都包含我从数据库中获取的数据。我有一个MOVE按钮,可将数据从每个片段的一个选项卡移动到另一个选项卡: 片段不会直接更新,而是在选项卡之间滑动了几下(恰好3次)。单击按钮后如何强制片段立即更新?我不想通过ViewPager中的onPage

  • 我希望能够动态更新我的Swing GUI的LookAnd感到属性。在这种情况下,我有一个简单的Swing/Awt游戏,运行的最初是Nimbus。在启动后的不同时间点,我想更改(让我们说)一个细节:我的应用程序的背景颜色。 我可以通过这样做来改变背景颜色: 这“有效”,因为应用程序的背景颜色会正确更改并且程序不会崩溃。但是在命令行上我收到错误: 显然,有些东西是空的,但我不知道它是什么,也不知道如何

  • V1.1.1新增 <?php $data=array("URL_HTML_SUFFIX"=>".html"); $result=sp_set_dynamic_config($data); ?>

  • 计算属性检测对属性所做的更改,并在使用set()方法调用它们时动态更新计算属性。 语法 (Syntax) ClassName.set('VariableName', 'UpdatedValue'); 例子 (Example) 以下示例显示了对属性进行更改时动态更新的值 - import Ember from 'ember'; export default function() { var

  • 我试图建立在一个问题的答案关于SwingProperty tyChangeSupport 我试图修改这里给出的代码,这是一个非常有用的、满是鳗鱼的气垫船的回答:WindowListener无法按预期工作,以便在通过输入对话框输入更改时更新显示的数组。 阵列已正常更新,但未在GUI中刷新。我希望有人能告诉我哪里出了问题。 以下是代码: -编辑-希望删除编译错误。

  • 我用chartjs创建了一个基本的条形图,效果很好。现在,我想以基于时间的间隔更新这些值。我的问题是,在我创建图表之后,我不知道如何正确地更新它的值。。。 我的代码: 在测试代码中,我正在使用-这是正确的方法吗?问题是每次调用,值都会重置为0,然后设置为随机值(就像我正在重新创建图表一样)。这样,所有动画总是从0到值,这看起来很奇怪。我希望如果我将一个值从50更新到10,该条将从50下降到10,而