Thank you very much, your solution is simple and efficient :-)

On Mon, Aug 31, 2009 at 10:57 PM, Matthias Kestenholz <
matthias.kestenh...@gmail.com> wrote:

>
> 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/
>
> >
>


-- 
Enrico Sartorello

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to