也许这是个愚蠢的问题,但我在django是个乞讨者。我有一个错误的问题:
"PartyNumView()缺少1个必需的位置参数:'pk'“
views.py
from description.models import Part
from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
from django.shortcuts import render_to_response, get_object_or_404
def PartyNumView(request, pk, page_number = 1):
all_parties = Part.objects.all()
current_page = Paginator(all_parties, 10)
try:
context = current_page.page(page_number)
except PageNotAnInteger:
context = current_page.page(1)
except EmptyPage:
context = current_page.page(current_page.num_pages)
onePart = get_object_or_404(Part, pk = pk)
return render_to_response('part_list.html', {'PartyNum': context, 'onePart': onePart})
urls.py:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^parties/(\d+)/$', PartyNumView),
url(r'^parties', PartyNumView),
url(r'parties/(?P<pk>[\d]+)$', PartyNumView, 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 %}"> {{ object.Party_number }}</a></td>
<td>{{ object.Film }}</td>
<td>{{ object.Thick }}</td>
<td>{{ object.Critical_temperature }}</td>
<td>{{ object.R_s }}</td>
{% endfor %}
在Models.py中,我有一个类部件(models.Model)
请帮我找出一个错误。
发布于 2018-06-05 05:17:29
url url(r'^parties', PartyNumView),
不解析参数pk
,但它仍然调用函数PartyNumView
。
对于特定的url,您必须使用不同的视图函数,或者使用默认值:
def PartyNumView(request, pk=None, page_number = 1):
我建议您阅读python style guide,也许可以根据标准实践调整您的代码。例如,函数名通常都是小写的,并用下划线分隔;例如,您的PartyNumView
可以重命名为party_num_view
。
使用这种风格可以帮助其他python程序员理解您的代码并提供更好的答案。
发布于 2018-06-05 05:17:43
你有两个PartyNumView
的urls模式;
url(r'^parties', PartyNumView),
url(r'parties/(?P<pk>[\d]+)$', PartyNumView, name='onePart'),
只需删除第一个,一切就好了,并在第二个之前添加^
url(r'^parties/(?P<pk>[\d]+)$', PartyNumView, name='onePart'),
或者,如果视图提供两个不同的url
,不要删除第一个^
,在第二个url中添加url,然后为视图中的pk
添加一个默认参数,如None
PartyNumView(request, pk=None, page_number = 1):
all_parties = Part.objects.all()
发布于 2018-06-05 05:27:00
问题出在你的url_patterns url(r'^parties', PartyNumView),
,当这个url你的视图没有收到pk参数时,它会引发异常
https://stackoverflow.com/questions/50688737
复制相似问题