Dies ist meiner Ansicht nach Funktion: Es dauert eine kwarg dh block_idWie übergebe ich Parameter von meiner Formularaktion an eine Ansicht?
def write_comment(request, block_id):
block=get_object_or_404(Block, pk=block_id)
if request.method=='POST':
form=Comment_form(request.POST)
if form.is_valid():
#do stuff
else:
return render(request,'writers_block/index.html', {'comment_form':form, 'block_form':Block_form()})
Um es von meiner Vorlage Form greife ich verwenden:
{%for block in block_list%}
<form method="post" action="{%url 'write_comment' block_id=block.id%}">
{%csrf_token%}
{{comment_form}}
<input type="submit" value="submit">
</form>
{%endfor%}
Irgendwie bin ich immer ein NoReverseMatch sagen bekommen, dass write_comment mit, dass die Argumente nicht gefunden wird:
Die URLPATTERN ist:
url(r'^write_comment', writers_block.views.write_comment, name='write_comment')
Können Sie mir helfen?
Sollte nicht die Zitate die gesamte Regex decken? like (r '^ write_comment/(? P \ d +)/$' oder sollte es nur 'write_comment' bedecken –
Danke, es hat geklappt .. Btw, muss ich immer Parameter über die URL übergeben? Gibt es einen Weg direkt durch Übergeben Sie die Parameter über die Vorlage an die Ansicht? –
Ja, das Zitat sollte bis zu $. Jetzt habe ich richtig bearbeitet. – Adaikalaraj