我在 Django 2.1 中使用通用视图。
我的观点很复杂,因为我不知道为什么:
网址.py:
path('study-abroad/<slug:slug>/', views.SubjectDetailView.as_view(), name='subject-detail'),
path('study-abroad/<slug:slug>/', views.StudylevelDetailView.as_view(), name='studylevel-list'),
所以我认为最好命名自定义 slug 以防止这种情况发生。像这样:
网址.py:
path('study-abroad/<slug:subjectslug>/', views.SubjectDetailView.as_view(), name='subject-detail'),
path('study-abroad/<slug:studylevelslug>/', views.StudylevelDetailView.as_view(), name='studylevel-list'),
我的问题是:
如何将 Slug_Field 的默认值更改为 mycustomslug?(在 Django 中默认是 slug)
视图.py
class SubjectDetailView(generic.DetailView):
model = Programmesearch
template_name = 'mnsdirectory/subject_detail.html'
def slugify(value, allow_unicode=False):
slug_field = slugify('Programmesearch.full_subject_name')
class StudylevelDetailView(generic.DetailView):
model = StudyLevel
template_name = 'mnsdirectory/study_level.html'
def slugify(value, allow_unicode=False):
slug_field = slugify('StudyLevel.study_level')
模型.py:
class Programmesearch(models.Model):
full_subject_name = models.CharField(max_length=100, choices=SUBJECT_NAME_CHOICE)
subjectslug = models.SlugField(unique=True)
def __str__(self):
return self.subjectslug
def get_absolute_url(self):
return reverse('SubjectDetailView', args=[str(self.id)])
class StudyLevel(models.Model):
study_level = models.CharField(max_length=100, blank=True, null=False)
studylevelslug = models.SlugField(unique=True)
def __str__(self):
return self.studylevelslug
def get_absolute_url(self):
return reverse('StudylevelDetailView', args=[str(self.id)])
当我尝试在管理页面中添加新对象时,我收到一条错误消息
“/admin/mnsdirectory/studylevel/add/ 处的 FieldError 无法将关键字 'slug' 解析为字段。选项有:id、study_level、studylevelslug”