【问题标题】:Automatically passing extra attributes to Widget自动将额外的属性传递给 Widget
【发布时间】:2010-07-28 08:04:04
【问题描述】:

我有一个自定义模型字段,可以有“链”参数。


from django.db import models

class ChainField(object):
    def __init__(self, *args, **kwargs):
        chain = kwargs.get('chain', False)
        if chain:
            self.chain = chain
            del kwargs['chain']

        super(self.__class__.__mro__[2], self).__init__(*args, **kwargs)

class DateTimeField(ChainField, models.DateTimeField):
    pass

现在的问题是:如何在初始化 ModelForm 时自动将模型字段的“链”参数传递给小部件类?我希望在 html 中它成为表单字段的 'class="chainxxx"' 属性。

【问题讨论】:

    标签: python django


    【解决方案1】:

    像这样覆盖ModelForm__init__

    class MyClass(ModelForm):
        def __init__(self, *args, **kwargs):
            super(MyClass, self).__init__(*args, **kwargs)
    
            chain_value = self.fields['name_of_the_field'].chain
            self.fields['name_of_the_field'].widget = CustomWidget(chain=chain_value)
    

    【讨论】:

      猜你喜欢
      • 2011-03-28
      • 1970-01-01
      • 2019-02-27
      • 2018-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-07
      相关资源
      最近更新 更多