2010-08-16 1 views
1

J'ai un modèle avec des données en elle définie comme ceci:vue Django pour récupérer des données des déclarations de modèle Nom de l'objet que

class SyncJob(models.Model): 
    date = models.DateTimeField() 
    user = models.ForeignKey(User, unique=False) 
    source = models.CharField(max_length=3, choices=FS_CHOICES) 
    destination = models.CharField(max_length=3, choices=FS_CHOICES) 
    options = models.CharField(max_length=10, choices=OPTIONS) 

    def _unicode_(self): 
    return u'%s %s %s' % (self.date, self.source, self.destination) 

et moi avons une vue de récupérer des données:

def retrieve(request): 
    sync = SyncJob.objects.get(id=02) 
    return render_to_response('base.html', {'sync': sync}) 

Mais lors du rendu de la page, je n'ai que: Objet SyncJob Au lieu d'obtenir la date, la source et l'information de destination. Comment puis-je faire pour que je reçoive ces données?

+0

De plus, il devrait être «__unicode__» et non «_unicode_». –

Répondre

2

Regardez la désignation des méthodes spéciales:

def _unicode_(self): 
    ... 

devrait être:

def __unicode__(self): 
    ... 

Python méthodes spéciales ont deux traits de soulignement à chaque extrémité du nom.

+0

+1 pour la capture rapide, c'est une erreur facile pour les nouveaux utilisateurs de django/python, car la lecture du texte __ est si facile à confondre avec _. – marr75

+0

Merci pour le conseil! – xzased

Questions connexes