Django 中的两个模型是否可以使用一个 url 模式?
我有两个模型:游戏和类别,我想要这两个模型都有一个 url 模式:
ios-games/category_name
and
ios-games/game_name
因此类别模式应该首先进行,如果 slug 不存在,则应该检查游戏模式。
是否可以不为这两个模型创建一个大视图?
不幸的是,路径的顺序url.py
不起作用,如果它在第一个模式中找不到对象,它就不会进一步寻找......
我不认为有什么办法可以让你继续从视图中查看 url。但是,您可以创建一个调用正确视图的视图。我以前做过类似的事情。就像是:
class GameCategoryFactory(View):
def dispatch(self, request, *args, **kwargs):
game_or_category_slug = kwargs.pop('slug')
if Category.objects.filter(name=game_or_category_slug).count() != 0:
return CategoryView.as_view()(request, *args, **kwargs)
elif Game.objects.filter(name=game_or_category_slug).count() != 0:
return GameView.as_view()(request, *args, **kwargs)
else:
raise Http404
当然,我使用的是基于类的视图。基于函数的方法应该非常简单。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)