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

Reply via email to