I started using django framework just a few days ago and i desperately need some help with my application.
It consists of client,project,admin,and admin payment classes where the admin_payment holds the ids of the admins and projects among other stuff.
My question is how i can display the "administrator's name" of each "project" in my admin listing of projects? the project class itself does not hold the administrator ids (the Admin_Payment does)
Currently i have the following structure: (striped down)
models.py
class Admin(models.Model):
admin_name = models.CharField(unique = True, blank = False, null = False, max_length = 128, verbose_name = u'admin full name')
def __unicode__(self):
return self.admin_name
class Meta:
ordering = ('id',)
verbose_name = u'Admin Info'
class Project(models.Model):
client = models.ForeignKey(Client, verbose_name = u'Client')
description = models.ForeignKey(Description, verbose_name = u'project description')
admins = models.ManyToManyField(Admin, verbose_name = u'Administrators', through = 'Admin_Payment')
class Admin_Payment(models.Model):
admin = models.ForeignKey(Admin, verbose_name = u'Administrator')
project = models.ForeignKey(Project, verbose_name = u'project')
admin.py (striped down)
class AdminInline(admin.TabularInline):
model = Admin
class ProjectAdmin(admin.ModelAdmin):
radio_fields = {'position': admin.HORIZONTAL, 'solution': admin.HORIZONTAL}
inlines = [AdminInline, ]
list_display = ['client','description','admin_name']
Clients and Descriptions appear correctly in the project listing but the admin names are not
Any help is appreciated (sorry if i posted anything that doesnt make sense , i am a newbie in python and django)
Displaying the contents of
ManyToMany
field isn't supported by default by django, because the database will be queried for each row of the results. You can display it yourself by adding a method to yourProject
-model:and put
admin_names
in yourlist_display
fields!