I would like to display the ip_address
from Hosts
model in HostInfo
's admin display.
# models.py
class Hosts(models.Model):
host_name = models.CharField(max_length=200, unique=True)
ip_address = models.GenericIPAddressField(protocol='both', unpack_ipv4=True)
def __unicode__(self):
return unicode(self.host_name)
def hostip(self):
return unicode(self.ip_address)
and I have the below in admin.py
# admin.py
class HostInfoResource(resources.ModelResource):
host = fields.Field(column_name='host',
attribute='host',
widget=ForeignKeyWidget(Hosts, 'host_name'))
project = fields.Field(column_name='project',
attribute='project',
widget=ForeignKeyWidget(Project, 'project_name'))
env = fields.Field(column_name='env',
attribute='env',
widget=ForeignKeyWidget(Env, 'env_name'))
class Meta:
model = HostInfo
skip_unchanged = True
import_id_fields = ('id', 'host','ticket','deployed_by')
export_order = ('id', 'host', 'nexpose_level','cpus','memory','os',
'sudoers_copied', 'sudo_granted', 'extra_disks','app_type','app_name',
'vcenter_status','ticket','env','project','deployed_by',
'updated_on','created_on')
class HostInfoAdmin(ImportExportModelAdmin):
resource_class = HostInfoResource
list_display = ['id', 'host', 'nexpose_level','cpus','memory','os',
'sudoers_copied', 'sudo_granted', 'extra_disks','app_type','app_name',
'vcenter_status','ticket','env','project','deployed_by']
readonly_fields = ('updated_on','created_on',)
admin.site.register(HostInfo, HostInfoAdmin)
I'm not quite understanding what I need to achieve this end.
try using double underscore when you want to go nested in relationship.
class HostInfoAdmin(ImportExportModelAdmin):
resource_class = HostInfoResource
list_display = ['id','host__ip_address', 'host', 'nexpose_level','cpus','memory','os',
'sudoers_copied', 'sudo_granted', 'extra_disks','app_type','app_name',
'vcenter_status','ticket','env','project','deployed_by']
def host__ip_address(self, obj):
return obj.host.ip_address
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