Great, works nicely.

I would have a follow-up question though :)

What about QuerySets?

Could I do:

p = Poll.objects.get(viewer=request.user,pk=poll_id)

and get that viewer parameter passed via QuerySet to the model?

Thanks, Sebastjan

On 5/29/07, Malcolm Tredinnick <[EMAIL PROTECTED]> wrote:
>
> Hi Sebastjan,
>
> On Tue, 2007-05-29 at 11:37 +0200, Sebastjan Trepca wrote:
> > Hi,
> >
> > I would like to create a custom abstract field for a model. This field
> > shouldn't affect the database, it should only be used for passing
> > variables.
> > I need to get "request.user" when "post_init" signal is fired. So I
> > was thinking about something like this:
> >
> > Creating a model in view
> >
> > > n = Poll(viewer=request.user,pk=poll_id)
> >
> > (Viewer field should also be a required field.)
> >
> > and then when post_init fires, you basically check:
> > > if instance.viewer is not in allowed_users: raise Forbidden()
> >
> > Any tips on how to create this kind of field or maybe any other solutions?
>
> Have a look at
> http://www.djangoproject.com/documentation/models/properties/ .
>
> You can see there that it is possible to create a property on a model
> that has a "setter", so that you can use that as a keyword argument in
> the model's initialisation. That setter can obviously do anything you
> like -- it need not be related to setting database fields. So that might
> be a solution to your problem.
>
> The Model.__init__ function already knows to look out for keyword
> arguments that correspond to those sort of properties, so this probably
> solves your problem.
>
> Regards,
> Malcolm
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to