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