2016-04-16 15 views
0

Ich erstelle eine kleine Webanwendung als ein Miniprojekt von mir, um das Django-Framework zu lernen. Ich bin auf Version 1.9.4, auf OS X. Ich versuche, eine Zeichenfolge in der URL zu übergeben, die an eine klassenbasierte Ansicht gesendet wird, und gibt eine andere Vorlage basierend auf der URL zurück. Nach meinem Wissen wird (?P) die Eingabe von dynamischem Text ermöglichen. \w ist für Zeichen und Schreiben <name> wird es als Variable übergeben. Ist das richtig konfiguriert oder ist das nicht der richtige Weg?Django 1.9: Übergeben von Argumenten aus urls.py an eine Klassenansicht

Der Grund, der mich betrifft, ist, dass die Django-Dokumentation Methodensichten verwendet, während ich klassenbasierte Ansichten verwende.

urls.py

from django.conf.urls import url 
from . import views 

app_name = 'xyz' 

urlpatterns = [ 
    url(r'^create/(?P<ty>\w+)$', views.ArticleView.as_view(), name='article-form'),  #.as_view() to turn Class into View 
] 

views.py

class ArticleCreate(View): 

    l = { 
    'weapon': WeaponForm, 
    'map': MapForm, 
    'operator': OperatorForm, 
    'gadget': GadgetForm, 
    'skin': SkinForm 
    } 

    ty = ty.lower() 

    template_name = 'xyz/create_article_form.html' 

    def get(self, request): 
    return render(request, self.template_name) 

    def post(self, request): 
    pass 
+1

Der richtige Weg, um was zu tun? Sie scheinen überhaupt nichts mit dem Parameter "ty" zu tun und haben auch nicht erklärt, welches Problem Sie haben. –

Antwort

0

Die Argumente, die an die URL übergeben werden sollte "gefangen" sein innerhalb der Blick ins Innere die entsprechende Funktion, zum Beispiel:

def get(self, request, ty): 
    ty = ty.lower() 
    return render(request, self.template_name) 
Verwandte Themen