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...
If the Django project has too many models or if it has a legacy database, then adding all those models to admin becomes a tedious task. To automate this process, we can programmatically fetch all the models in the project and register them with the admin interface. Open admin.py file and add this code to it.
The modeladmin module allows you to add any model in your project to the Wagtail admin. You can create customisable listing pages for a model, including plain Django models, and add navigation elements so that a model can be accessed directly from the Wagtail admin.
In this article, we will discuss how to enhance Django-admin Interface. Let us create an app called state which has one model with the same name(state). When we register app to admin.py it shows like. Now lets' customize django admin according to available options.
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']
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With