次のURLパターンがあります-
url(r'^detail/(?P<var>[\w]+)/(?P<var_slug>[\w-])/$', 'player_detail', name='player_detail'),
私の見解では、私は次のことを持っています -
model_dict = {"player":PlayerProfile, "event":PlayerEvent, "need":PlayerNeed}
def player_list(request, var=None, var_slug=None):
'''
displays the list of vars
'''
objs = model_dict.get(var).objects.filter(slug=var_slug).order_by('-creation_time')[:20]
template_name = "list_"+str(var)+"s.html"
return render(request, template_name, {"objs":objs})
私のテンプレートでは、最終的に次のことを行います-
<a href="{% url 'player_detail' var='baseball' slug='obj.slug' %}">details of Player</a>
私が得るエラーは次のとおりです-
Reverse for 'player_detail' with arguments '()' and keyword arguments '{u'var': u'baseball', u'slug': u'obj.slug'}' not found.
私は何が欠けていますか?
また、パラメータの変数に応じてモデルを動的に選択し、その場でテンプレート名を生成するのは良い方法ですか?