attrsを使用してカスタムウィジェットを正しく提供するにはどうすればよいですか?呼び出しprint attrs
はこれを出力するだけです:
attrs in LockFlagWidget are:
{'id': u'id_lockedFlag'}
私はこれを期待しますが:
attrs in LockFlagWidget are:
{'id': u'id_lockedFlag', 'size': u'80}
私はこのようなカスタムウィジェットを書きました:
class LockFlagWidget(forms.widgets.Widget):
def render(self, name, value, attrs=None):
if value is None:
value = ''
print "attrs in LockFlagWidget are:"
print attrs
staticURL = getattr(settings, 'STATIC_URL')
if value != '':
if value == True:
return mark_safe(u"<img src=\"" + staticURL +
"lock/img/lock_closed.ico\"/>"
+ "<span> - Is locked</span>")
else:
return mark_safe(u"<img src=\"" + staticURL +
"lock/img/lock_open.ico\"/>"
+ "<span> - Is not locked</span>")
今、私は次のような形でウィジェットを使用しています:
class LockForm(forms.ModelForm):
class Meta:
model = MyModel
def __init__(self, *args, **kwargs):
super(LockForm, self).__init__(*args, **kwargs)
self.fields['lockedFlag'].widget = LockFlagWidget(attrs={'size':'80'})
MyModel
このように見えます:
class MyModel(models.Model):
lockedFlag = models.BooleanField(default=False)