簡體   English   中英

html代碼中的Django URL參數

[英]Django url parameters in html code

我試圖將待辦事項列表項的ID傳遞給我的html代碼,以便當我編輯待辦事項列表項並單擊提交時一切正常。

在views.py中:

def edit(request, id):
    todo = Todo.objects.get(id=id)
    context = {
        'todo': todo
    }

    if(request.method == 'POST'):
        title = request.POST['title']
        text = request.POST['text']

        todo.title = title


        todo.text = text

        todo.save()

        return redirect('/todos')

    else:
        return render(request, 'edit.html', context)

在urls.py中:

url(r'^details/(?P<id>\w{0,50})/edit/$', views.edit, name='edit')

在HTML中:

<h2>Edit Todo- {{ todo.title }}</h2>

<form action="{% url 'edit' request.todo.id %}" method="post">
{% csrf_token %}
<label for="title">Title</label> <br/>

<input type="text" name="title" id="title"/>
<br>

<label for="text">Text</label> <br/>
<textarea type="text" name="text" id="text"></textarea>
<br><br>

<input type="submit" value="Submit"/>
</form>

我認為問題出在html代碼中的網址中。 我不知道如何傳遞待辦事項項的id參數。

我不斷收到的錯誤是

invalid literal for int() with base 10: ''

請幫忙

問題就在那里:不要使用“ request ”,通過上下文發送的對象是“ todo ”:

<form action="{% url 'edit' todo.id %}" method="post">{% csrf_token %}

或者您可以將其留空。 空白表示當前顯示的視圖

<form action="" method="post">{% csrf_token %}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM