如何将两个slu in放在一个url模式中?我有一个与模型类别有多对一关系的模型链接 .
url(
regex=r'^(?P[\w-]+)/(?P\d+)(?:/(?P[\w\d-]+))?/$',
view=views.LinkDetailView.as_view(),
name='link_detail'
),
现在两个slu is正在运作 . 但是接受你在url的category_slug部分写的任何内容 .
让我们说:你写127.0.0.1:8000/there_is_no_name_like_that_in_the_database/pk/slug这个 . 您将转到此页面,但没有此名称的类别 . 我不知道为什么会这样做 .
links / views.py
class LinkDetailView(FormMixin, DetailView):
model = Link
context_object_name = 'link'
form_class = CommentForm
success_url = reverse_lazy('home')
def get_context_data(self, **kwargs):
context = super(LinkDetailView, self).get_context_data(**kwargs)
content_type = ContentType.objects.get_for_model(Link)
obj_id = self.kwargs['pk']
context['comments'] = Comment.objects.filter(content_type=content_type, object_id = obj_id)
context['comment_form'] = CommentForm(initial={
'content_type': self.object.get_content_type,
'object_id': self.object.id
})
category = Link._meta.get_field('category').rel.to
context['uni_kabile'] = category.objects.all()
return context
...