我无法理解为什么以下不起作用:请帮我弄清楚我做错了什么。
模板
data-url="{% url 'dashboard:contract_update' contract.pk %}"
urls.py
url(r'^(?P<pk>[0-9]+)/contract-update/$', views.contract_update, name='contract_update'),
views.py
def contract_update(request, pk):
''' Updates instance of contract '''
contract = get_object_or_404(Contract, pk=pk)
template = 'dashboard/includes/contract/modal/partial_contract_update.html'
print(contract)
if request.method == 'POST':
form = ContractForm(request.POST, instance=contract)
print("contactperson_update: request.method = post")
else:
form = ContractForm(instance=contract)
return save_contract_form(request, form, template)
console.log(url)= / 1 / contract-update /
错误消息:
django.urls.exceptions.NoReverseMatch: Reverse for 'contract_update' with arguments '('',)' not found. 1 pattern(s) tried: ['(?P<pk>[0-9]+)/contract-update/$']
我为联系人提供相同的代码,它正在运作。
data-url="{% url 'dashboard:contactperson_update' contact.pk %}"
url(r'^(?P<pk>[0-9]+)/contactperson-update/$', views.contactperson_update, name='contactperson_update'),
答案 0 :(得分:1)
非常感谢Alasdair。
从
更改了我的模板<form method="post" action="{% url 'dashboard:contract_update' form.instance.contract.pk %}" class="js-contract-update-form">
到
<form method="post" action="{% url 'dashboard:contract_update' form.instance.pk %}" class="js-contract-update-form">
我的主要错误是从以前的模板复制/粘贴而没有注意细节...