ошибка: обратное для 'centreupdate' с аргументами ключевого слова '{' pk ': 2}' не найдено.Попробован 1 шаблон (ов): ['NewApp / centreupdate / (? P <slug>[- \\ w \\ d] +)'] - PullRequest
0 голосов
/ 03 июля 2019

Я хотел использовать значение поля вместо первичного ключа в своем URL, я посмотрел в Интернете и нашел для этого некоторый код. Я хочу использовать slug в url centreupdate, но я даже не могу получить доступURL-адрес центрелиста. Что я делаю не так?Заранее спасибо.

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 голосов
/ 03 июля 2019

Вы передаете pk, но в URL вы объявляете slug так, чтобы он был слагом, но не найден.Изменить здесь

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