首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >带有关键字参数的'onePart‘的反转-问题

带有关键字参数的'onePart‘的反转-问题
EN

Stack Overflow用户
提问于 2018-06-06 05:34:05
回答 1查看 21关注 0票数 0

我尝试使我的url类似于party_number /(Party_number)-( pk ),其中party_number和pk对于每个对象都是不同的。但我得到的不是这个错误:

找不到关键字参数为'{'pk':10,‘

’:‘A15151’} 'onePart‘的数字反向。尝试了1个模式:[‘描述/(?:(?P\d+)-(?P\d+)/)?$’]

在my views.py中:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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:

代码语言:javascript
复制
{% 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 %}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-06 05:51:52

您应该更改URL参数的位置,将Party_number作为模板中的第一个参数。

代码语言:javascript
复制
<td><a href="{% url 'onePart' nums=object.Party_number pk=object.pk %}">...</td>

正如我在回溯参数中清楚地看到的那样,{'pk': 10, 'nums':'A15151'} Party_number可能不仅包含数字,因此您的正则表达式是错误的。

而不是这个

代码语言:javascript
复制
 url(r'description/(?:(?P<nums>[\d]+)-(?P<pk>[\d]+)/)?$', forOne, name='onePart'),

尝试:

代码语言:javascript
复制
url(r'description/(?P<nums>\w.+)/(?P<pk>\d+)/$', forOne, name='onePart'),

该urls调用没有所需参数nums的视图def forOne(request, pk):。最好将参数设置为默认值

代码语言:javascript
复制
def forOne(request, pk, nums=None):
    ''' '''
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50709259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档