错误:找不到带有关键字参数'{'pk':2}'的'centreupdate'。尝试了1个模式:['NewApp / centreupdate /(?P <slug> [-\\ w \\ d] +)']

时间:2019-07-03 16:07:16

标签: python django django-models django-urls

我想在URL中使用字段值而不是主键,我在互联网上查找并找到了一些代码。我想在centerupdate URL中使用slug,但我什至无法访问中心列表网址。我在做什么错?预先感谢。

models.py

class Centre(models.Model):
name= models.CharField(max_length=50, blank=False, unique=True)
address = models.CharField(max_length =250)
phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$',
                             message="Phone number must be entered in the format: '+999999999'. Up to 10 digits allowed.")
contact = models.CharField(max_length=100, blank=False)
phone = models.CharField(validators=[phone_regex], max_length=10, blank=True)  # validators should be a list
slug = AutoSlugField(unique_with='id', populate_from='name')


def __str__(self):
    return self.name

def get_absolute_url(self):
    return reverse("index")

urls.py

url(r'^createcentre/$', views.centre.as_view(), name='centreinfo'),
url(r'^centrelist/$', views.CentreListView.as_view(), name='centrelist'),
url(r'^centreupdate/(?P<slug>[-\w\d]+)',views.CentreUpdateView.as_view(),name='centreupdate'),
url(r'^centredelete/(?P<pk>\d+)/$',views.CentreDeleteView,name='centredelete'),

1 个答案:

答案 0 :(得分:0)

您传递了pk,但在url中声明了slug,以便它呈段状但未找到。 在这里更改

url(r'^centreupdate/(?P<pk>[-\w\d]+)',views.CentreUpdateView.as_view(),name='centreupdate'),