Reputation: 29084
I would like to display the model's username in Django Admin interface but not very sure how to do it..
The models.py:
class Adult(models.Model):
user = models.OneToOneField(User)
fullname = models.CharField(max_length=100,
blank=True)
def __unicode__(self):
return self.user.username
Admin.py:
class AdultAdmin(admin.ModelAdmin):
list_display = ('??', 'Student_Name',)
search_fields = ['??',]
admin.site.register(Adult, AdultAdmin)
What should go inside the ?? above ? I would like to display the unicode or the self.user.username? How do i do it? Need some guidance...
Upvotes: 24
Views: 12991
Reputation: 174642
From the list_display
documentation there are four things you can add there:
ModelAdmin
.For your case we need #3 for list_display
.
For search_fields
its easier as you can use follow notation (__
) to do lookups.
In the end we come up with this:
class AdultAdmin(admin.ModelAdmin):
list_display = ('__unicode__', 'Student_Name',)
search_fields = ['user__username']
Upvotes: 48