#django #django-forms
#django #django-forms
Вопрос:
В формах встроенного набора форм могу ли я настроить поле, сгенерированное can_delete?
Я хочу добавить класс и атрибут к полю для интерфейсных манипуляций.
Ответ №1:
Обновленное решение
## forms.py
from django import forms
from django.forms.formsets import formset_factory
...
...
class UserForm(forms.Form):
sso_id = forms.CharField(widget=forms.TextInput(attrs={'pattern':'[a-z][a-z.]*[a-z]','required':'required'}))
role = forms.ChoiceField(required=False, choices=[(x,x) for x in ['Admin','Employee']])
UserFormset = formset_factory(UserForm,extra=0,can_delete=True)
...
...
## views.py
from .forms import UserFormset
...
...
initial_data = [
{'sso_id':'admin.admin','role':'Admin'},
{'sso_id':'employee.employee','role':'Employee'},
{'sso_id':'employee.employeee','role':'Employee'},]
my_formset = UserFormset(initial=initial_data)
for form,data in zip(my_formset,initial_data):
if data.get('role',None) == 'Admin':
form.fields['DELETE'].widget.attrs['class'] = 'Admin'
form.fields['DELETE'].widget.attrs['readonly'] = False
else:
form.fields['DELETE'].widget.attrs['class'] = 'Employee'
form.fields['DELETE'].widget.attrs['readonly'] = True
...
Комментарии:
1. где вы делаете это изменение в инициализации ?, можете ли вы расширить пример