Я использую формы Cripsy и у меня есть ModelMultipleChoiceField, использующий CheckboxSelectMultiple.Однако, чекбоксы отображаются в стандартных чекбоксах, и мне нужно добавить некоторые css в поле чекбокса ('custom-control-input'), чтобы они отображались, как и остальные мои загрузочные чекбоксы.
Есть идеи, с чего начать?
class CustomPermissionMultipleChoiceField(forms.ModelMultipleChoiceField):
def label_from_instance(self, obj):
return "%s" % obj.name
class UserPersonalInfoEdit(forms.ModelForm):
permission_codename_list = (
'can_view_admin', 'change_retailer', 'change_website', 'change_rating', 'change_contract',
'view_contract',
)
user_permissions = CustomPermissionMultipleChoiceField(
required=False, widget=forms.CheckboxSelectMultiple,
queryset=Permission.objects.filter(codename__in=permission_codename_list))
class Meta:
model = CustomUser
fields = ['first_name', 'last_name', 'email', 'username', 'user_permissions']
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_method = 'POST'
self.fields['first_name'].required = True
self.fields['last_name'].required = True
self.fields['email'].required = True
self.fields['username'].help_text = None
self.fields['is_active'].help_text = None
self.helper.layout = Layout(
Row(
Column('first_name', css_class='form-group col-md-4 mb-0'),
Column('last_name', css_class='form-group col-md-4 mb-0'),
Column('username', css_class='form-group col-md-4 mb-0'),
),
Row(
Column('email', css_class='form-group col-md-4 mb-0'),
),
HTML('<hr>'),
Row(
Column('user_permissions', css_class='form-group col-md-4 mb-0'),
),
HTML('<hr>'),
Submit('submit', 'Save'),
HTML('<a class="btn btn-primary" href="{% url "core:user_list" %}" role="button">Close</a>')
)