2009-10-12 9 views
0

J'ai un modèle en utilisant la bibliothèque GeoIP pour rendre le pays de l'adresse IP pour cet enregistrement:Affichage des propriétés du modèle de Django sur Administrateur

class PageIP(models.Model): 
    """ 
    Detail of page 
    """ 
    ip_address = models.IPAddressField(blank=True,verbose_name="IP Address") 


    def _client_country(self): 
     g = GeoIP() 
     return g.country(self.ip_address) 

    client_country = property(_client_country) 

Est-il possible de montrer cette propriété (client_country) dans la Django 1.1 admin? Comme actuellement écrit, cela n'apparaît pas dans l'admin.

Cheers.

+0

Django dit ici: http://docs.djangoproject.com/fr/dev/ref/models/fields/#ipaddressfield que L'administrateur représente cela comme (une entrée sur une seule ligne). Donc, il devrait certainement apparaître – 0100110010101

Répondre

0

vous devriez le mettre dans le fichier admin.py:

from django.contrib import admin 
admin.site.register(PageIP) 

et il y apparaîtra sous peu. également, assurez-vous que votre application est dans settings.py sous INSTALLED_APPS

+0

Le modèle est là, tout comme le domaine ip_address. J'ai besoin de client_country dans l'admin. –

+0

pourquoi ne pas essayer __str __ (auto)? pour écrire en vous devrait ajouter un setter ainsi, non seulement getter. – 0100110010101

+0

bonne idée - c'est tellement évident que je n'y ai pas pensé. Je vais utiliser __unicode __ (self) cependant. –

Questions connexes