我尝试使我的url类似于party_number /(Party_number)-( pk ),其中party_number和pk对于每个对象都是不同的。但我得到的不是这个错误:
找不到关键字参数为'{'pk':10,‘
’:‘A15151’} 'onePart‘的数字反向。尝试了1个模式:[‘描述/(?:(?P\d+)-(?P\d+)/)?$’]
在my views.py中:
def PartyNumView(request, page_number = 1):
all_parties = Part.objects.all()
current_page = Paginator(all_parties, 2)
try:
context = current_page.page(page_number)
except PageNotAnInteger:
context = current_page.page(1)
except EmptyPage:
context = current_page.page(current_page.num_pages)
return render_to_response('part_list.html', {'PartyNum': context})
def forOne(request, pk):
onePart = get_object_or_404(Part, pk=pk)
return render_to_response('singlePart.html', {'onePart': onePart})
my urls.py:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^parties/(?P<page_number>[\d]+)/$', PartyNumView),
url(r'^parties', PartyNumView),
url(r'description/(?:(?P<nums>[\d]+)-(?P<pk>[\d]+)/)?$', forOne, name='onePart'),
url(r'^main/', TemplateView.as_view(template_name='main.html')), #static html
url(r'^measures/', TemplateView.as_view(template_name='IcDesc.html')), #static html
]
和part_list.html:
{% for object in PartyNum %}
<tr>
<td>{{ forloop.counter }}</td>
<td><a href="{% url 'onePart' pk=object.pk nums=object.Party_number %}"> {{ object.Party_number }}</a></td>
<td>{{ object.Film }}</td>
<td>{{ object.Thick }}</td>
<td>{{ object.Critical_temperature }}</td>
<td>{{ object.R_s }}</td>
{% endfor %}
发布于 2018-06-06 05:51:52
您应该更改URL参数的位置,将Party_number
作为模板中的第一个参数。
<td><a href="{% url 'onePart' nums=object.Party_number pk=object.pk %}">...</td>
正如我在回溯参数中清楚地看到的那样,{'pk': 10, 'nums':'A15151'}
Party_number
可能不仅包含数字,因此您的正则表达式是错误的。
而不是这个
url(r'description/(?:(?P<nums>[\d]+)-(?P<pk>[\d]+)/)?$', forOne, name='onePart'),
尝试:
url(r'description/(?P<nums>\w.+)/(?P<pk>\d+)/$', forOne, name='onePart'),
该urls调用没有所需参数nums
的视图def forOne(request, pk):
。最好将参数设置为默认值
def forOne(request, pk, nums=None):
''' '''
https://stackoverflow.com/questions/50709259
复制相似问题