Comparez les prix des domaines et des services informatiques des vendeurs du monde entier

Suppression des champs de la forme dynamique du modèle

DANS ModelForm, Je dois vérifier les droits de l'utilisateur pour leur permettre de remplir des champs :

Il est défini comme suit:


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


Ce ModelForm faire son travail : Je cache chaque champ dans le gabarit et les forcer à apparaître merci javascript...

Le problème réside dans le fait que chaque champ défini dans le modèle sera affiché dans le modèle.

Je voudrais les supprimer de la forme s'ils n'ont pas besoin de:

Exemple: si l'utilisateur n'a pas droit au modèle de la société, il ne l'utilisera pas sous une forme visualisée dans le modèle.

Le problème est que vous devez placer la liste des champs du formulaire de méta-classe avec

des champs

ou

exclure

Attribut, mais je ne sais pas comment les gérer de manière dynamique.

Des idées??

Merci d'avance pour toute réponse.
Invité:

Frederic

Confirmation de:

Il suffit de le retirer de

self.fields

dict:


if not user.has_perm/"blablabla"/:
del self.fields["company"]

Pour répondre aux questions, connectez-vous ou registre