В ModelForm я должен проверить права пользователей, чтобы они могли заполнить нужные поля:
Это определяется так:
class TitleForm(ModelForm):
def __init__(self, user, *args, **kwargs):
super(TitleForm,self).__init__(*args, **kwargs)
choices = ['','----------------']
# company
if user.has_perm("myapp.perm_company"):
self.fields['company'] = forms.ModelChoiceField(widget=forms.HiddenInput(),
queryset=Company.objects.all(), required=False)
choices.append(1,'Company')
# association
if user.has_perm("myapp.perm_association")
self.fields['association'] =
forms.ModelChoiceField(widget=forms.HiddenInput(),
queryset=Association.objects.all(), required=False)
choices.append(2,'Association')
# choices
self.fields['type_resource'] = forms.ChoiceField(choices = choices)
class Meta:
Model = Title
Этот ModelForm выполняет свою работу: я скрываю каждое поле в шаблоне и заставляю их появляться благодаря javascript ...
Проблема заключается в том, что ModelForm заключается в том, что каждое поле, определенное в модели, будет отображаться в шаблоне.
Я хотел бы удалить их из формы, если они не нужны:
пример: если пользователь не имеет права на модель компании, он не будет использоваться в представленной форме в шаблоне.
Проблема в том, что вы должны поместить список полей в мета-класс в форме с fields или exclude attribute, но я не знаю, как управлять их динамически.
Любая идея ??
Заранее спасибо за любой ответ.