> Hello,
> I'm trying to modify my admin.py from my app "ordis":
>
> from ordis.models import Ordi, Maintenance, OperatingSystem
> from django.contrib import admin
>
> #class MaintenanceAdmin(admin.ModelAdmin):
> #list_display = (???) here I would like to see my Computer id, and
> the OS installed on it
>
> def renvoi_os(Ordi):
> #return ("%d" % (Ordi.id)).upper()
> return ("%d %d" % (Ordi.id, Ordi.operatingsystemused)).upper()
> class MaintenanceAdmin(admin.ModelAdmin):
> list_display = (renvoi_os,)
The function renvoi_os seems to take an 'Ordi' (ordinateur?) object,
but you have associated it with MaintenanceAdmin, which is associated
with Maintenance, not an Ordi, so the renvoi_os function will raise an
exception when you attempt to access the 'operatingsystemused'
attribute, which exists on Ordi instances, not Maintenance instances.
Further more, 'operatingsystemused' is not a simple attribute of Ordi,
its a ManyToMany, which you are trying to display as a decimal number
('%d' in your format string).
This should work:
def renvoi_os(maintenance):
oses_installed = u',
'.join(maintenance.ordi.operationsystemused_set.all().values('operatingsystem',
flat=True))
return ("%d %s" % (maintenance.ordi.id, oses_installed)).upper()
class MaintenanceAdmin(admin.ModelAdmin):
list_display = (renvoi_os,)
Cheers
Tom
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
No comments:
Post a Comment