Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 在内联表单集的表单中,我可以自定义由can_delete生成的字段吗?_Django_Django Forms - Fatal编程技术网

Django 在内联表单集的表单中,我可以自定义由can_delete生成的字段吗?

Django 在内联表单集的表单中,我可以自定义由can_delete生成的字段吗?,django,django-forms,Django,Django Forms,在内联表单集的表单中,我可以自定义由can_delete生成的字段吗 我想为字段添加一个类和一个属性,用于前端操作 更新的解决方案 您在init中进行此更改的地方,是否可以扩展此示例 ## forms.py from django import forms from django.forms.formsets import formset_factory ... ... class UserForm(forms.Form): sso_id = forms.CharField(widg

在内联表单集的表单中,我可以自定义由can_delete生成的字段吗

我想为字段添加一个类和一个属性,用于前端操作

更新的解决方案

您在init中进行此更改的地方,是否可以扩展此示例
## 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
...