2016-08-03 6 views
3

私はメザニンの残りのAPIに取り組んでおり、簡単に作業できるようにいくつかのビューを追加しています。私は1つのビューをコード化し、そのシリアライザをしたが、郵便配達からヒットしようとしたとき、私はエラーが404なぜ私のビューはdjango restフレームワークで見つからないのですか?

Views.py

@csrf_exempt 
@api_view(['POST']) 
def create_site_record(request): 
    serializer = SiteModelSerializer(data=request.data) 
    if serializer.is_valid(): 
     serializer.save() 
     return Response(serializer.data, status=status.HTTP_201_CREATED) 

serializers.py

class SiteModelSerializer(serializers.Serializer): 
    title = serializers.CharField(required=True, max_length=100) 
    tagline = serializers.CharField(required=True, max_length=100) 
    domain = serializers.CharField(required=True, max_length=100) 

    def create(self, validated_data): 
     return Site.objects.create(**validated_data) 

urls.py

router = routers.DefaultRouter(trailing_slash=False) 
router.register(r'users', UserViewSet) 
router.register(r'pages', PageViewSet) 
router.register(r'posts', PostViewSet) 
router.register(r'categories', CategoryViewSet) 
# router.register(r'create_site', create_site_record, 'sitess') 
router.register(r'site', SiteViewSet, SiteViewSet.as_view({'get': 'retrieve'})) 


urlpatterns = [ 
    url(r'^create/(?P<pk>[0-9]+)$', create_site_record), # I have tried registering this view in router also but no luck 
    url(r'^', include(router.urls)), 
    url(r'^docs/', include('rest_framework_swagger.urls')), 
    url(r'^oauth2/', include('oauth2_provider.urls', namespace='oauth2_provider')), 
    url(r'^auth/', include('rest_framework.urls', namespace='rest_framework')), 
] 
が見つかりません取得しています

このエンドポイントにヒットしようとしています:ペイロードを持つhttp://localhost:8000/api/create_site/{ "title": "Test", "tagling": "sdhjshjd", "domain": "test:8000" }

取得エラー:私が間違っているのは何Not Found: /api/create_site/

+2

URLが間違っ –

答えて

2

それはあなたのURLパスに問題があるように見えます。既存のオブジェクトを参照するために一般的に使用されるため、作成エンドポイントの桁キャプチャを持つ必要はありません。パスをurl(r'^create/$', create_site_record)に変更し、POST要求をhttp://localhost:8000/api/create/に送信してください。

+0

まだ取得エラーです: 'が見つかりません:/ create_site/ [03/8月/ 2016午前9時04分56秒] "POST/create_site/HTTP/1.1" のメザニン・プロジェクト以来404 1697' –

+0

このメザニンのREST APIフレームワークとそのregisteres URLパターンが 'URL(「^ API /」、(「mezzanine_api.urls」を含む))' –

+0

ああ、[OK]を持っているのと私が上で実行している場合、APIの一部は正しかったです。私は誤ってURLにcreate_siteを持っていました。更新されたものが動作するはずです。 – rurp

関連する問題