2017-10-23 10 views
0

私はrequest.data.get( 'student_name')を試していますが、そのリストには属性getがありません。シリアライザに渡す前にすべての生徒の名前を取得したいだけです。私は多くのオブジェクトを含むリストからデータを取得できません

[ 
{"student_name": "jack", "last_name": "cale", "fathers_name":"carlos"}, 
{"student_name": "alex", "last_name": "magasa", "fathers_name":"greg"}, 
{"student_name": "sia", "last_name": "gunns", "fathers_name":"brett"}, 
{"student_name": "jacob", "last_name": "woods", "fathers_name":"john"} 
] 

私のviews.py

@api_view(['POST']) 
def add_students(request): 
student_name = request.data.get('student_name') 
fathers_name = request.data.get('fathers_name') 
serializer = StudentsSerializer(data=request.data, many=True) 
if serializer.is_valid(): 
    serializer.save() 
    return Response("success") 
else: 
    return Response(serializer.errors) 

私serializers.py

class StudentsSerializer(serializers.ModelSerializer): 

class Meta: 
    model = Students 
    fields = ('student_name', 'last_name', 'fathers_name') 

私のmodels.py

class Students(models.Model): 
student_name = models.CharField(max_length=100, null=True) 
last_name = models.CharField(max_length=100, null=True) 
fathers_name = models.CharField(max_length=100, null=True) 
+0

'request.data [0] .get( 'student_name')'はジョブを終了しますが、リスト内の最初の要素のデータにアクセスします。他のすべての要素で何をしますか? – ZdaR

+0

正確に@zdar私はそれを試してみましたが、私はそれを探していますすべての要素を得る –

答えて

1
の形でPOSTリクエストデータを送信しています

リストから値を取得しようとしているため、iterを使用する必要がありますリストを介して食べました

+1

thnxxは正確だった –

1

これはリクエストオブジェクトの形式に関する質問です。私の2つのセントは、方法の始めにimport ipdb; ipdb.set_trace()を投げて、printdirを使ってオブジェクトがどのように見えるかを知ることが価値があるということです。 Djangoには非常に多くのdjango固有のオブジェクトがあるので、これは多くの場合に役立ちます。

関連する問題