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
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. –