Board
»
Django das Framework
»
Probleme & Fragen
»
Comments bei einem Blog [erledigt]
|
Posted by miracle2k |
|
return HttpResponseRedirect('/blog/%s/' % entry_slug) Das kann man übrigens besser schreiben mit reverse()
http://www.djangoproject.com/documentation/url_dispatch/#reverse
reverse(detail, kwargs={'slug': entry_slug})
Die URL wird dann automatisch aus den urlpatterns erstellt - sprich keine Duplizierung, wenn man die URL ändert muss man nicht alle Redirects anpassen. Das Kommentar sollte schon automatisch dem richtigen post zugeordnet werden, und nicht beim schreiben auswählbar sein. Es gibt verschiedene Möglichkeiten aus der Form zu entfernen. Am einfachsten ist wohl editable=False beim Feld im Model zu setzen, dann wird es gar nicht erzeigt. Alternativ kann man den callback von form_for_* verwenden, oder das Feld einfach löschen, nachdem die Form erzeugt wurde (aber wohl nicht so optimal): del form.fields['post'] # als instanz del CommentFormClass.base_fields['post'] # als klasse und dann wie ich schon gepostet hatte, die Form nicht sofort abspeichern.
if form.is_valid():
comment = form.save()
comment.post = entry
comment.save()
...
|
|
|
Posted by sascha ![]() |
|
|
Danke nochmals,
werde jetzt in Ruhe versuchen alles umzusetzen. |
|
|
Posted by sascha ![]() |
|
Habe es genau so gemacht, bekam aber einen Fehler. Nachdem ich einfach mal "comment = form.save(commit=False)" statt "comment = form.save()" benutzt habe funktionierte es.
Was genau ist/macht commit=False ? |
|
|
Posted by sascha ![]() |
|
|
Wozu dient "commit=False", also -> "comment = form.save(commit=False)" ???
Habe die Antwort gefunden: Es wird benutzt um das Objekt nicht in der Datenbank zu speichern, also zum "postprocessing" benutzt. Damit hat man dann die Möglichkeit extra Attribute wie (and/then/save) zu benutzen. Ich benutze es so:
Danke nochmal! |

