Я написал такие модели, просмотры и URL-адреса
class PreventionField(models.Model):
name = models.SlugField(max_length=200)
verbose_name = models.CharField(max_length=200)
class PreventionFieldDetailView(DetailView):
model = PreventionField
template_name = 'prevention-fields-details.html'
template_name = "prevention-field-details.html"
def get_object(self, **kwargs):
return PreventionField.objects.get(slug=self.kwargs['slug'])
urlpatterns = [
url(r'^$', Frontpage.as_view(), name='frontpage'),
path('fields/<slug>/',PreventionFieldDetailView.as_view(),name='fields')]
И я хочу сгенерировать URL-адреса слагов на основе записей в модели PreventionField, которые я могу переключать между подстраницами на моем веб-сайте, например
http://mywebsite.com/fields/neuro где нейро-слизняк из модели, но эта ошибка возврата
и хорошо, поэтому мне нужно переключиться с «slug» на «name», потому что это мой SlugField в модели PreventionField, верно? Что ж, когда я меняю код views.py на
return PreventionField.objects.get(slug=self.kwargs['name'])
затем появилась следующая ошибка:
и теперь я его потерял.
Я не понимаю, почему DetailView работает таким образом и как мне его изменить, чтобы получить URL-адрес слага.
Я должен упомянуть, что у меня не было проблем, когда я использовал pk вместо slug.






Вы все неправильно поняли. Поле в вашей модели называется name. Так:
return PreventionField.objects.get(name=self.kwargs['slug'])
Хотя было бы намного лучше просто установить slug_field = 'name' на уровне класса в представлении, тогда вам вообще не нужно определять get_object.
Я не понимаю, почему это не работает с моим кодом. Я схожу с ума