Displaying the model's__unicode__ in django admin
django, django-admin
Solution
From the `list_display` documentation there are four things you can add there:
- A field
- Some method (a callable) that accepts one variable that is the instance for which the row is being displayed.
- A string that is the name of a method or attribute defined in the model class.
- A string that is the name of a method that is defined in `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']
Problem
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...