Ich habe versucht, folgende this suggestion Zeichenfolge-Parameter an eine klassenbasierte Ansicht übergeben, aber es scheint nicht zu funktionieren.Django: Übergeben von String-Parametern an die klassenbasierte Ansicht funktioniert nicht
der url:
url(r'^chart/(?P<chart_name>\w+)/$',
ChartView.as_view(chart_name='chart_name'), name="chart_url"),
die Ansicht:
class ChartView(View):
template_name = "chart.html"
chart_name = None
def post(self, request, *args, **kwargs):
form = DatesForm(request.POST)
context = {
'form': form
}
return render(request, self.template_name, context)
def get(self, request, *args, **kwargs):
print("test")
form = DatesForm()
# fetch plot data (default values used)
context = {
'form': form,
'chart_name': self.chart_name
}
return render(request, self.template_name, context)
der Link, der zu der Ansicht sein Umleitung soll:
<a href="{% url 'chartboard:chart_url' chart_name='lords' %}">Sometext</a>
(Namespace 'chartboard' gegeben in die urlconf des Projekts).
der Fehler:
NoReverseMatch at /chart/lords/
Reverse for 'chart_url' with arguments '()' and keyword arguments '{}' not found. 1 pattern(s) tried: ['chart/(?P<chart_name>\\w+)/$']
Für das, was ihren Wert "Test" zweimal an die Konsole Ausgabe gedruckt wird (warum?)
Mit django 1.8.11 und Python 3.4.3 auf Ubuntu 14.04 .04
Zeigt das Traceback die Zeile an, die den Fehler verursacht? Ich glaube nicht, dass es sich um den Link handelt, den Sie gepostet haben, weil der 'chart_name = 'lords'' nicht mit der Fehlermeldung übereinstimmt. – Alasdair
@Alasdair yep du bist richtig! Ich verwende diese URL ohne Parameter an einer anderen Stelle der Vorlage und daher den spezifischen Fehler – pkaramol
Haben Sie es geschafft, das Problem zu beheben? Wenn nicht, posten Sie die fehlerhafte Zeile. – Alasdair