2009-12-14 3 views
0

J'ai un modèle de contact très basique. Le modèle comporte les champs suivants:contexte dans un filtre de requête?

class Entry(models.Model): 
    name = models.CharField(max_length=64, unique=False) 
    organization = models.CharField(max_length=100, unique=False, blank=True, null=True) 
    team = models.CharField(max_length=64, unique=False, blank=True, null=True) 
    position = models.CharField(max_length=64, unique=False, blank=True, null=True) 
    address = models.CharField(max_length=130, unique=False, blank=True, null=True) 
    ... 

    def __unicode__(self): 
     return u'%s' % self.name 

J'ai différents modèles pour afficher/modifier des entrées individuelles. Je voudrais accomplir ce qui suit. Lors de la visualisation d'un enregistrement individuel, j'aimerais que l'utilisateur puisse cliquer sur «organisation» et être redirigé vers un modèle qui répertorie tous les enregistrements existants dans la base de données de cette organisation. J'ai construit le modèle, mais je ne suis pas sûr du code de la vue. Je pense que ça devrait être quelque chose comme ça, mais je ne pense pas que ce soit légal.

def display_organization(request): 
    records = Entry.objects.filter(organization__exact=Context) 
    t = get_template('org_list.html') 
    html = t.render(Context({'records': records})) 
    return HttpResponse(html) 

Quelqu'un peut-il vous aider?

Répondre

3

Vous voulez sans doute la carte URL display_organization pour inclure un paramètre pour l'organisation:

('^organization/(?P<org_name>.+)$', 'myapp.views.display_organization'), 

Avec cela, votre fonction display_organization doit accepter le paramètre org_name aussi:

def display_organization(request, org_name): 
    records = Entry.objects.filter(organization__exact=org_name) 
    html = get_template('org_list.html').render({'records': records}) 
    return HttpResponse(html) 
+0

génère une erreur de type. "display_organization() prend exactement 2 arguments (1 donné)" semble ne pas aimer la syntaxe. Merci quand même. – kjarsenal

+0

Vous devez apporter la modification correspondante à l'URL pour que cela fonctionne. Comment voulez-vous que votre modèle sache * quelle * organisation utiliser? – jcdyer

0

Vous faites c'est assez complexe en fonction de l'URL. C'est bien s'il n'y a qu'une ou deux choses qui fonctionnent de cette façon.

Je dirais, rester simple et il suffit d'utiliser request.GET

def display_organization(request): 
    records = Entry.objects.filter(organization__iexact=request.GET['organization']) 
    ... 
Questions connexes