2010-01-06 3 views
0

J'essaye d'interroger un objet et quand je code dur la valeur cela fonctionne mais quand j'utilise une variable pour cela la requête ne fonctionne pas.Django Query: recherche avec valeur codée variable vs hard

est ici la classe:

class AdvertisementType(models.Model): 
    type = models.CharField(max_length='40') 
    description = models.CharField(max_length='80') 

    def __unicode__(self): 
     return '%s' % self.type 

est ici la requête:

self.type_ad = AdvertisementType.objects.get(type=type_of_ad) 

À titre d'exemple, il y a un AdvertisementType où le type = "page intérieure"

Quand j'utilise cette déclaration:

self.type_ad = AdvertisementType.objects.get(type="Inner Page") 

Tout fonctionne très bien, mais si je fais

self.type_ad = AdvertisementType.objects.get(type=type_of_ad) 

je reçois l'erreur

Caught an exception while rendering: AdvertisementType matching query does not exist. 

même lorsque type_of_ad = "page intérieure"

Toutes les idées?

Répondre

0

Je l'ai compris. Le problème est quand j'ai appelé

tag_name, number, type_ad = token.split_contents() 

J'ai oublié que type_ad obtient le « » de la balise de modèle.

Quand je chagned

self.type_ad = AdvertisementType.objects.get(type=type_of_ad) 

à

self.type_ad = AdvertisementType.objects.get(type=type_of_ad[1:-1]) 

tout fonctionnait