2012-11-23 9 views
11

Ho un modello URL mappato ad una classe visualizzazione personalizzata nel mio Django App, in questo modo:Accesso Chiave primaria da URL in Django Visualizzazione classi

url(r'^run/(?P<pk>\d+)/$', views.PerfRunView.as_view()) 

Il problema è che non riesco a capire come posso accedere 'pk' dalla stringa del pattern URL nella mia classe di visualizzazione in modo da poter recuperare un oggetto modello specifico in base al suo id del database. Ho cercato su Google, ho esaminato la documentazione di Django, ho cercato Stack Overflow e non riesco a trovare una risposta soddisfacente.

Qualcuno può dirmelo?

+1

http://stackoverflow.com/questions/6427004/django-generic-view-subclassed-url-parameters fa questo aiuto? –

+1

https://docs.djangoproject.com/en/1.4/topics/class-based-views/#performing-extra-work leggi la seconda nota. – iMom0

+0

@Ankur Gupta Grazie per i link, ma non ci sono ancora del tutto chiaro. Fa parte di self.kwargs? Pensavo di impadronirmi di Django, fino a quando non ho iniziato a vedere le lezioni. Io proprio non li capisco affatto. – Luke

risposta

36

In una visualizzazione basata su classi, tutti gli elementi dall'URL sono posizionati in self.args (se sono gruppi non denominati) o self.kwargs (per gruppi denominati). Quindi, per la tua vista, puoi usare self.kwargs['pk'].

+1

L'ho ordinato ora. Ho anche una migliore comprensione di come funzionano le lezioni di Django View. Grazie! – Luke

2

per accedere alla chiave primaria in vista post =

Class_name.objects.get(pk=self.kwargs.get('pk')) 
Problemi correlati