ich versuche mich zur Zeit an Django. Leider hänge ich gerade an folgendes.
Leider bekomme beim Abschicken eines Kommentars immer die Fehlermeldung "CSRF token missing or incorrect".
Das Bild sollte mein Problem verdeutlichen:
https://www.pic-upload.de/view-34149304/django.png.html
Meine View:
Code: Alles auswählen
from django.shortcuts import render
from django.shortcuts import get_object_or_404
from django.shortcuts import render_to_response
from django.http import HttpResponse
from django.http import HttpResponseRedirect
from django.template import RequestContext, loader
from .models import Meldung, Kommentar
def meldungen(request):
return render_to_response('news/meldungen.html',
RequestContext(request, {'meldungen' : Meldung.objects.all()}))
def meldungen_detail(request, meldungs_id):
meldung = get_object_or_404(Meldung, id=meldungs_id)
if 'speichere_kommentar' in request.POST:
name = request.POST.get('besuchername', '')
text = request.POST.get('kommentartext', '')
if name and text:
kommentar = meldung.kommentar_set.create(
autor=name, text=text)
kommentar.save()
return HttpResponseRedirect('.')
else:
return render_to_response('news/meldungen_detail.html',
RequestContext(request,
{'meldung' : meldung,
'fehler': 'Geben Sie Ihren Namen und ' \
'einen Kommentar an.',
'besuchername' : name, 'kommentartext' : text}))
return render_to_response('news/meldungen_detail.html',
RequestContext(request, {'meldung' : meldung}))
[codebox=html5 file=Unbenannt.html]{% extends "main/basis.html" %}
{% block titel %}
News-Details für Eintrag {{ meldung.id }}
{% endblock %}
{% block inhalt %}
<div class="kontainer">
<div class="titelzeile">
<div class="titel">{{ meldung.titel|escape }}</div>
<div class="zeitstempel">{{ meldung.zeitstempel }}</div>
<div style="clear: both"></div>
</div>
<div class="text">
{{ meldung.text|escape|linebreaksbr }}
</div>
</div>
<div class="kontainer">
<div class="titelzeile">Kommentare</div>
{% if meldung.kommentar_set.count %}
<table>
{% for k in meldung.kommentar_set.all %}
<tr class="kommentarzeile">
<td class="spaltenbezeichner">{{ k.autor }}:</td>
<td>{{ k.text|escape|linebreaksbr }}</td>
</tr>
{% endfor %}
</table>
{% else %}
Keine Kommentare
{% endif %}
</div>
<div class="kontainer">
<div class="titelzeile">Neuer Kommentar</div>
<span class="fehler">{{ fehler }}</span>
<form method="post" action="">
{% csrf_token %}
<input type="hidden" name="speichere_kommentar" value="1"/>
<table>
<tr class="kommentarzeile">
<td class="spaltenbezeichner">Ihr Name:</td>
<td><input type="text" name="besuchername"
value="{{ besuchername }}"/></td>
</tr>
<tr class="kommentarzeile">
<td class="spaltenbezeichner">Kommentar:</td>
<td>
<textarea name="kommentartext">{{ kommentartext }}</textarea>
</td>
</tr>
</table>
<input type="submit" value="Abschicken" />
</form>
</div>
<div class="link_unten">
<a href="{% url 'news:meldungen' %}">Zurück</a>
</div>
{% endblock %}
[/code]
Ich hoffe jemand kann mir helfen.
Danke im Voraus!