On Thursday, June 14, 2012 3:04:54 PM UTC+4, Paulo Almeida wrote:
>
> Hi,
>
> I would like to access the request.user in a ModelAdmin function, so I can
> filter the results of a query based on the logged in user. I have these
> models:
>
> class Speaker(models.Model):
> name = models.CharField(max_length=50)
> endorsements = models.ManyToManyField(User,
>
> through="Endorsement")
>
> class Endorsement(models.Model):
> speaker = models.ForeignKey('Speaker')
> user = models.ForeignKey(User)
> endorsed = models.NullBooleanField()
>
> class Meta:
> unique_together = ("speaker", "user")
>
> User comes from django.contrib.auth.models. In the ModelAdmin, I would
> like to have this:
>
> class SpeakerAdmin(admin.ModelAdmin):
> def is_endorsed(self, obj):
>
> endorsement = Endorsement.objects.get(speaker=obj,
>
> user=request.user)
> return endorsement.endorsed
>
> So then I could just add "is_endorsed" to the list_display variable to
> have the endorsement status for that user in the Speaker list, in the Admin
> site. Of course, this doesn't work because request isn't available in the
> is_endorsed function. I googled around and saw solutions for similar
> problems involving overrides of save_model, queryset or
> formfield_for_manytomany, but I couldn't adapt them to list_display,
> because I'm creating a function in the ModelAdmin, where I only know how to
> pass self and obj. Suggestions?
>
> Thanks,
> Paulo Almeida
>
I think you looking for this app
http://pypi.python.org/pypi/django-cuser/
Small piece of middleware to be able to access authentication data from
everywhere in the django code.
Right ?
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/django-users/-/7zNoE-as3asJ.
To post to this group, send email to [email protected].
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.