On Fri, Aug 28, 2009 at 10:34 AM, Enrico Sartorello<enrico.sartore...@gmail.com> wrote: > Hi, > i'm developing a Django application where i need to differentiate the > validation of an admin-site model form between different users: some user > must respect some particular restrictions (imposed via "clean_*" methods) > while others should do what they want without them. > > The problem arises because during form validation i cannot access any > request object (so i can't build a permission-based criteria), and checking > everything in other places (like Model_admin.save_model() method or with > signals) can't do the job because there i can't raise form's validation > errors. > > I've searched on the net but seems i cannot find any solution for that > problem. > > Any hints? >
Simple: Pass the current user to the form: class MyForm(forms.ModelForm): def __init__(self, *args, **kwargs): self.saved_user = kwargs.pop('user') super(MyForm, self).__init__(*args, **kwargs) Somewhere else in the code: form = MyForm(request.POST, user=request.user) resp. form = MyForm(user=request.user) Of course that isn't the only possibility to achieve what you want, but it's quite straightforward to do it like this. Matthias -- FeinCMS Django CMS building toolkit: http://spinlock.ch/pub/feincms/ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---