2016-11-28 17 views
0

私は単に私のDjango APIにGETまたはPUTしようとしています。これは、すべての罰金コンパイルが、毎回私は、次のmesssageを取得し、Webインターフェイスを通じてPUTまたはGETしよう:Django HTTP 404エラー(PUTまたはGET時)

HTTP 404 Not Found 
Allow: GET, PUT, PATCH, DELETE, OPTIONS 
Content-Type: application/json 
Vary: Accept 

{ 
    "detail": "Not found." 
} 

enter image description here

ジャンゴに、私は非常に新しい、私は間違っていたところ、私はここでは、わかりません私のviews.pyファイルです:

from django.shortcuts import render 
from rest_framework import viewsets 
from rest_framework import permissions 
from SecMeRe.models import Patient 
from SecMeRe.serializers import PatientSerializer 

# Create your views here. 
class PatientViewSet(viewsets.ModelViewSet): 
    queryset = Patient.objects.all() 
    serializer_class = PatientSerializer 

私modesl.pyは

from __future__ import unicode_literals 
from django.db import models 
import uuid 

class Patient(models.Model): 
    firstName = models.CharField(max_length=255) 
    lastName = models.CharField(max_length=255) 
    dob = models.DateField() 
    firstRecorded = models.DateField() 
    uniqueHash = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) 

nyd my serializers.py

from SecMeRe.models import Patient 
from rest_framework import serializers 

class PatientSerializer(serializers.HyperlinkedModelSerializer): 
    class Meta: 
     model = Patient 
     fields = ('firstName', 'lastName', 'dob', 'firstRecorded', 'uniqueHash') 
+0

django 'runserver'を使っていて、' DEBUG = True'を使っているなら、あなたの端末を見てください。エラーメッセージは、完全なトレースバックが好きで、django rest framework 404エラーよりも多くの情報を提供する必要があります。 – DataSwede

答えて

1

データベースにレコードがあるまでは、何も取得できません。あなたのurls.pyの定義も見ることなく、言うことは難しいですが、患者のリストビューとして/api/SecMeRe/patient/を設定すると仮定しています。

患者の詳細ビュー(URLは/api/SecMeRe/patient/353/)にPUTする必要があります。ここで353は新しい患者レコードの新しい主キーです。

同様に、あなたはそのURLにGET呼び出すことができます。/api/SecMeRe/patient/353/

あなたは、代わりにPUTのPOSTを使用してIDを選択する気にしないようにしたい場合は、あなたは/api/SecMeRe/patient/の元のURLを打つことができます。

PUTが偶数性のリソースであるため、毎回IDを呼び出す必要がある理由があります。あなたはURL上でPUTを100回呼び出すことができ、それを作成して更新するためにIDを指定しているので、同じ結果になります。

関連する問題