1

パーマリンクを使用しているときに get 変数を URL に追加する方法はありますか?

つまり www.example.com/1999/news/ ?filter=entertainment

4

1 に答える 1

1

IMHO Permalink にはクエリ パラメータを含めないでください。正しく聞こえません。

get_absolute_url()とはいえ、モデルのメソッドから指定した URL のような URL を返すには、非常に下品で Django に似ていない方法があります。

手順

最初に、ダミー URL と対応する何もしないビューを追加します。例えば

# models.py
class MyModel(models.Model):
    ...
    @models.permalink
    def get_absolute_url(self):
        return ('dummy_url', [str(self.id), self.filter])

# urls.py
url(r'^news/(?P<model_id>\d+)/\?category=(?P<category>\w+)$', 
    'dummy_url', {}, name = 'dummy_url'),

# views.py
def dummy_url(request, *args, **kwargs):
    pass

このダミーは、URLを生成するためだけに使用されます。つまり、 を実行すると正しい URL が得られますinstance.get_absolute_url()

URL が呼び出されたときにインスタンス ページを実際に表示するには、適切なURL 構成と一致するビューを追加する必要があります。このようなもの。

# urls.py
url(r'^news/(?P<model_id>\d+)/$', 
    'correct_view', {}, name = 'correct_view'),

# views.py
def correct_view(request, *args, **kwargs):
    # do the required stuff.

ただし、からパラメーターcorrect_viewを抽出する必要があります。GETrequest

ダミーの URL 構成と適切な URL 構成がいかに似ているかに注目してください。ダミーでは、クエリ パラメータのみが余分です。

于 2010-09-08T06:56:08.400 に答える