我想在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'),
答案 0 :(得分:0)
您传递了pk
,但在url中声明了slug
,以便它呈段状但未找到。
在这里更改
url(r'^centreupdate/(?P<pk>[-\w\d]+)',views.CentreUpdateView.as_view(),name='centreupdate'),