I sort of fixed this by adding it to the ModelAdmin. It just takes a bit of time to refresh, but it's because its trying to ping a list of IP addreses.
list_display = ('DSLAM_STATUS',)
def DSLAM_STATUS(self, obj):
if os.system('ping -w 1 -n 1 ' + obj.ip_address):
DSLAM_STATUS = False
else:
DSLAM_STATUS = True
return DSLAM_STATUS
DSLAM_STATUS.boolean = True
DSLAM_STATUS.allow_tags = True
This only works some of the time, but I believe the time it takes to ping the ip_address is too quick at times.