自动传递额外属性到小部件
我有一个自定义的模型字段,它可以有一个叫做'chain'的参数。
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的时候,怎么才能自动把模型字段的'chain'参数传递给小部件类?我希望在HTML中,它能变成表单字段的'class="chainxxx"'属性。
1 个回答
0
像这样重写 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)