Python Django:带有PK问题的详细视图URL

Python Django:带有PK问题的详细视图URL,python,regex,django,webapp2,keyword-argument,Python,Regex,Django,Webapp2,Keyword Argument,我是Django的新手,我正在尝试构建一个church目录应用程序来管理church(羊群)中的用户(绵羊)。在我为名为ChurchMembers的模型添加CBV-DetailView之前,一切似乎都正常。我想使用该成员的pk创建一个详细视图,以便该成员拥有一个配置文件 我在调试中收到以下错误消息: NoReverseMatch at /flock/members/ Reverse for 'view_member_detail' with keyword arguments '{'pk': '

我是Django的新手,我正在尝试构建一个church目录应用程序来管理church(羊群)中的用户(绵羊)。在我为名为ChurchMembers的模型添加CBV-DetailView之前,一切似乎都正常。我想使用该成员的pk创建一个详细视图,以便该成员拥有一个配置文件

我在调试中收到以下错误消息:

NoReverseMatch at /flock/members/
Reverse for 'view_member_detail' with keyword arguments '{'pk': ''}' not found. 1 pattern(s) tried: ['flock/members/(?P<member_pk>\\d+)/$']
我有一种预感,这与我的URL.py文件的设置方式有关。可能是不正确的正则表达式,或者可能是错误的顺序。URL.py如下:

app_name = 'flock_app'

urlpatterns = [
    url(r'^$', views.home, name='home'),
    url(r'^register/$', views.register, name='register'),
    url(r'^login/$', views.user_login, name='user_login'),
    url(r'^logout/$', views.user_logout, name='user_logout'),
    url(r'^add_church/$', views.add_church, name='add_church'),
    url(r'^add_member/$', views.add_member, name='add_member'),
    url(r'^members/$', views.view_members_list.as_view(), name='view_members_list'),
    url(r'^members/(?P<member_pk>\d+)/$', views.view_member_detail.as_view(), name='view_member_detail'),
    url(r'^churches2/$', views.view_churches_list.as_view(), name='view_churches_list'),
    url(r'^(?P<pk>[-\w]+)/$', views.view_churches_detail.as_view(), name='view_churches_detail'),
    url(r'^update/(?P<pk>\d+)/$', views.update_church_detail.as_view(), name='update_church_detail'),
    url(r'^delete/(?P<pk>[-\w]+)/$', views.delete_church.as_view(), name='delete_church'),
    url(r'^home', views.home, name='home')
]
app\u name='flock\u app'
URL模式=[
url(r'^$',views.home,name='home'),
url(r“^register/$”,views.register,name='register'),
url(r“^login/$”,views.user\u login,name='user\u login'),
url(r“^logout/$”,views.user\u logout,name='user\u logout'),
url(r“^add\u church/$”,views.add\u church,name='add\u church'),
url(r“^add\u member/$”,views.add\u member,name='add\u member'),
url(r'^members/$,views.view_members_list.as_view(),name='view_members_list'),
url(r'^members/(?P\d+/$),views.view\u member\u detail.as\u view(),name='view\u member\u detail'),
url(r“^churches2/$”,views.view_churches_list.as_view(),name='view_churches_list'),
url(r'^(?P[-\w]+)/$,views.view\u chucks\u detail.as\u view(),name='view\u chucks\u detail'),
url(r'^update/(?P\d+/$),views.update_church_detail.as_view(),name='update_church_detail'),
url(r'^delete/(?P[-\w]+)/$,views.delete_church.as_view(),name='delete_church'),
url(r'^home',views.home,name='home')
]
下面是我从HTML调用DetailView的过程:

  <div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
    <a class="dropdown-item" href="{% url 'flock_app:view_member_detail' pk=mem.member_pk %}">Sheep Profile</a>
    <a class="dropdown-item" href="#">Delete sheep</a>
  <div/>

任何帮助都将不胜感激

编辑-添加HTML源代码

{% extends 'flock_app/base.html' %}
{% load crispy_forms_tags %}

{%  block body_block%}

<div class="jumbotron">
  {% if members %}

  <h1 class="display-3 text-center">All Sheep in Flocks <button type="button" class="btn btn-outline-secondary" onclick="location.href='{% url 'flock_app:add_member' %}'">Add Sheep</button></h1>
  <table class="table table-hover">
    <thead class=>
      <tr>
        <th scope="col"></th>
        <th scope="col">Flock</th>
        <th scope="col">First Name</th>
        <th scope="col">Last Name</th>
        <th scope="col">Email</th>
        <th scope="col">Phone</th>
        <th></th>
      </tr>
    </thead>
    {% for mem in members %}
    <tbody>
      <tr>
        <th scope="row"></th>
        <td>{{ mem.Flock }}</td>
        <td>{{ mem.First_Name }}</td>
        <td>{{ mem.Last_Name }}</td>
        <td>{{ mem.Email }}</td>
        <td>{{ mem.Phone_Number }}</td>
        <td>
          <div class="dropdown">
            <a class="btn btn-outline-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Manage</a></th>
          <div/>
          <div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
            <a class="dropdown-item" href="{% url 'flock_app:view_member_detail' pk=mem.member_pk %}">Sheep Profile</a>
            <a class="dropdown-item" href="#">Delete sheep</a>
          <div/>
        </td>
      </tr>
      {% endfor %}
      <table/>
  {% else %}

    <h1 class="text-center">No Sheep Found</h1>
    <h1 class="lead text-center">Click <a href="{% url 'flock_app:add_member' %}">here</a> to add Sheep to <em>His</em>_Flock</h2>

  {% endif %}


</div>
{% endblock %}
{%extends'flock\u app/base.html%}
{%load crispy_forms_tags%}
{%block body_block%}
{%if成员%}
羊群中所有的羊都加羊
一大群
名字
姓
电子邮件
电话
{members%%中的mem的%s}
{{mem.Flock}
{{mem.First_Name}
{{mem.Last_Name}
{{mem.Email}
{{mem.Phone_Number}
{%endfor%}
{%else%}
没有找到羊
单击以将羊添加到他的群中
{%endif%}
{%endblock%}
编辑2-DJANGO错误代码

NoReverseMatch at /flock/members/
Reverse for 'view_member_detail' with keyword arguments '{'pk': ''}' not found. 1 pattern(s) tried: ['flock/members/(?P<member_pk>\\d+)/$']
Request Method: GET
Request URL:    http://127.0.0.1:8000/flock/members/
Django Version: 1.11.7
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'view_member_detail' with keyword arguments '{'pk': ''}' not found. 1 pattern(s) tried: ['flock/members/(?P<member_pk>\\d+)/$']
Exception Location: C:\Program Files\Python35\lib\site-packages\django\urls\resolvers.py in _reverse_with_prefix, line 497
Python Executable:  C:\Program Files\Python35\python.exe
Python Version: 3.5.4
Python Path:    
['C:\\Users\\gabrielcastillo\\Google Drive\\git_base\\flock',
 'C:\\Program Files\\Python35\\python35.zip',
 'C:\\Program Files\\Python35\\DLLs',
 'C:\\Program Files\\Python35\\lib',
 'C:\\Program Files\\Python35',
 'C:\\Program Files\\Python35\\lib\\site-packages',
 'C:\\Program Files\\Python35\\lib\\site-packages\\win32',
 'C:\\Program Files\\Python35\\lib\\site-packages\\win32\\lib',
 'C:\\Program Files\\Python35\\lib\\site-packages\\Pythonwin']
Server time:    Wed, 18 Jul 2018 02:21:37 +0000
Error during template rendering
In template C:\Users\gabrielcastillo\Google Drive\git_base\flock\templates\flock_app\base.html, error at line 0

Reverse for 'view_member_detail' with keyword arguments '{'pk': ''}' not found. 1 pattern(s) tried: ['flock/members/(?P<member_pk>\\d+)/$']
NoReverseMatch at/flock/members/
找不到具有关键字参数“{pk':''}”的“查看成员详细信息”的相反内容。尝试了1个模式:[“flock/members/(?P\\d+/$”]
请求方法:获取
请求URL:http://127.0.0.1:8000/flock/members/
Django版本:1.11.7
异常类型:NoReverseMatch
异常值:
找不到具有关键字参数“{pk':''}”的“查看成员详细信息”的相反内容。尝试了1个模式:[“flock/members/(?P\\d+/$”]
异常位置:C:\Program Files\Python35\lib\site packages\django\url\resolvers.py in_reverse_,带_前缀,第497行
Python可执行文件:C:\Program Files\Python35\Python.exe
Python版本:3.5.4
Python路径:
['C:\\Users\\gabrielcastillo\\Google Drive\\git\u base\\flock',
'C:\\ProgramFiles\\Python35\\Python35.zip',
“C:\\Program Files\\Python35\\dll”,
'C:\\ProgramFiles\\Python35\\lib',
'C:\\ProgramFiles\\Python35',
'C:\\Program Files\\Python35\\lib\\site packages',
'C:\\Program Files\\Python35\\lib\\site packages\\win32',
'C:\\Program Files\\Python35\\lib\\site packages\\win32\\lib',
'C:\\ProgramFiles\\Python35\\lib\\site packages\\Pythonwin']
服务器时间:2018年7月18日星期三02:21:37+0000
模板呈现期间出错
在模板C:\Users\gabrielcastillo\Google Drive\git\u base\flock\templates\flock\u app\base.html中,第0行出现错误
找不到具有关键字参数“{pk':''}”的“查看成员详细信息”的相反内容。尝试了1个模式:[“flock/members/(?P\\d+/$”]
URL从

url(r'^members/(?P<member_pk>\d+)/$', views.view_member_detail.as_view(), name='view_member_detail'),
url(r'^members/(?P\d+)/$,views.view\u member\u detail.as\u view(),name='view\u member\u detail'),

url(r'^members/(?P\d+)/$,views.view\u member\u detail.as\u view(),name='view\u member\u detail'),

我已经解决了这个问题!看起来我调用了HTML页面中的另一个视图,该视图抛出了一个错误。一旦清除,我就可以访问我所有的网页与相应的ok信息

谢谢你的快速回复!不幸的是,这并没有解决问题。同样的错误。我正在使用对两种不同型号的pk的调用。Django可能把它们混在一起了吗?通过在模板中用{{mem.member_pk}列出它来确保你的mem.member_pk不是''。我刚刚试过这个!仍然没有解决。但我现在没有收到错误页面!我可以点击链接,但它不会带我去任何地方,url也不会改变。用html发布关于
的源代码
url(r'^members/(?P<member_pk>\d+)/$', views.view_member_detail.as_view(), name='view_member_detail'),
url(r'^members/(?P<pk>\d+)/$', views.view_member_detail.as_view(), name='view_member_detail'),