我正在學習Django並學習它。我不完全瞭解當我從模板發佈數據時發生了什麼。我有一個模型類Person定義表中的字段。我正在使用表單顯示有關某人的信息,並且我可以查看某個人的信息,但我無法保存相同的信息。當我點擊提交時,我得到錯誤頁面未找到。我不明白爲什麼人會在url中追加兩次。這有點令人困惑。我希望有人能幫助我理解我的錯在哪裏。 請求URL:http://devops:8000/cms/person/person 這裏是我的代碼:django post方法在url中傳遞參數後不工作
forms.py:
class PersonView(ModelForm):
class Meta:
model = Person
fields = ['FirstName','LastName','Address']
urls.py:
urlpatterns = patterns('cms',
url(r'^workflowdetail/(?P<id>\d+)$', 'views.person',name='cms'),
)
views.py:
def person(request, id):
person= get_object_or_404(Person, pk=id)
if request.method == 'GET':
form = Person(instance=person)
else:
form = Person(request.POST,instance=person)
if form.is_valid():
form.save()
return render(request, 'person.html', {'form': form, 'id': id})
人。 html
<form action="person" role="form" method="post">
{% bootstrap_form form %}
</form>
我以前試過,我得到這個錯誤。 NoReverseMatch:未找到參數'(u'2',)'和關鍵字參數'{}'的'workflow'。嘗試了0個模式:[] – hermy67
你必須嘗試一些稍微不同的東西 - 我的代碼不會導致包含'工作流程'的錯誤。請注意,我使用''cms''是因爲在url模式中有'name ='cms''。 – Alasdair
這是我做的複製錯誤。你的解決方案是正確的,並工作我無法使用原始代碼並嘗試對其進行編輯。但你的解決方案是完美的。我使用了錯誤的名稱而不是cms,現在它可以工作。 – hermy67