0

次の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.

私は何が欠けていますか?

また、パラメータの変数に応じてモデルを動的に選択し、その場でテンプレート名を生成するのは良い方法ですか?

4

1 に答える 1

3

slug='obj.slug'する必要がありますslug=obj.slug

正規表現が一致しません.

また、おそらく[\w-]+他の正規表現と同じように.. 1 つ以上 [\w または -]

于 2013-06-05T19:39:59.813 に答える