0

は、私は上記のdjangorestframework

router.register(r'city-list', CityListViewSet, base_name='city-list') 

viewsetsに向けられている以下のURLでてきたようにこのURLは機能しますが、これを行うと:

router.register(r'^city-list$', CityListViewSet, base_name='city-list') 

これが壊れて404エラーが発生します。 ^は最初からパターンマッチングのための正規表現です。$^と似ていますが、後ろのパターンマッチングのためです。

同様に、このURLをチェックアウト:

私は入力文字列を、私は例えば置けば、私は cityプレースホルダ

にエラーを取得しています^$と同じ問題を抱えて

router.register(r'venue-filter-options-list/(?P<city>[a-zA-Z]+)' 

chicagocityに置き換えます。

djangoデバッグページで次のエラーが表示されます。

Exception Type: ValueError 
Exception Value:  
invalid literal for int() with base 10: 'chicago' 

私の正規表現が正しいとは限りません。

他にもこの問題がありますか?

+0

シカゴをプレースホルダに配置する場所にコードを挿入できますか? –

+0

ビューセットを表示できますか? – zaidfazil

+0

'lookup_field'を変更するだけであれば、あなたのビューセットに' lookup_field = "your_field_name" 'を追加するだけです。独自の正規表現を書く必要はありません。ビューセットは暗黙のうちにそれらの世話をするためのものです。 – zaidfazil

答えて

0
  1. ビューセットはクラスベースであり、URLに.as_view()と電話する必要があります。
  2. as_view()
  3. ビューセット取得するために辞書がpkフィールドは、デフォルトで照会することを期待、あなたが何か他のものを使用したい場合は、あなたがビューセットの宣言にルックアップフィールドを変更する必要があるとして、あなたはメソッドを指定する必要があります。エラーは、int値pkが文字列でなくてはならないことを伝えています。 詳細を読むhttp://www.django-rest-framework.org/api-guide/viewsets/
関連する問題