django rest框架模型外键中的$http.post

django rest框架模型外键中的$http.post,django,angularjs,http,django-rest-framework,Django,Angularjs,Http,Django Rest Framework,我有一个连接到rest框架的angular js应用程序。我试图发布一些数据,以便对rest框架进行如下更改: $scope.addDegree = function(degree) { var variablesToSend = { "student": { "student_id": 2773951

我有一个连接到rest框架的angular js应用程序。我试图发布一些数据,以便对rest框架进行如下更改:

$scope.addDegree = function(degree) {
            var variablesToSend =   {
                                        "student": {
                                            "student_id": 2773951, 
                                            "first_name": "Michaella", 
                                            "middle_name": "Helene", 
                                            "last_name": "Bonose", 
                                            "email": "email@dcccd.eddu", 
                                            "phone": 1234567890, 
                                            "cell_phone": 0123456789
                                        }, 
                                        "credits_completed": 0, 
                                        "academic_program_gpa": 0, 
                                        "primary_program": false,
                                        "academic_program": {
                                            "id": degree.id, 
                                            "acad_program_type": {
                                                "id": degree.acad_program_type.id, 
                                                "program_type": degree.acad_program_type.program_type
                                            }, 
                                            "program_title": degree.program_title, 
                                            "required_credits": degree.required_credits, 
                                            "min_gpa": degree.min_gpa, 
                                            "description": "description of the course", 
                                            "colleges": degree.colleges
                                        }
                                    }
            $http.post('/api/studentacademicprogram/', variablesToSend).then(function(response){
                console.log(response);
                alert('post added');
            }, function(response){
                console.log(response);
                alert('post not added');
            });
          };
class Student_academic_program(models.Model):
    student = models.ForeignKey(Student)
    academic_program = models.ForeignKey(Academic_program)
    credits_completed = models.IntegerField(null=True)
    academic_program_gpa = models.FloatField(null=True)
    primary_program = models.BooleanField()
以下是我如何定义从工厂获取的信息:

angular.module('jsonService', ['ngResource'])

    .factory('ProgramsService',function($http) {
        return {
            getItems: function(callback) {
                $http.get('/api/studentacademicprogram/?format=json').success(callback);
            }
        };
    })
下面是我在rest框架中定义视图的方式:

class StudentAcademicProgramList(APIView):
    def get(self, request, format=None):
        student_academic_program = Student_academic_program.objects.filter(student=29722)
        serialized_Student_academic_program = StudentAcademicProgramSerializer(student_academic_program, many=True)
        return Response(serialized_Student_academic_program.data)

    def post(self, request, format=None):
        serializer = StudentAcademicProgramSerializer(data = request.DATA)
    if serializer.is_valid():
        serializer.save()
            return Response(serializer.data, status= status.HTTP_201_CREATED)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

class StudentAcademicProgramDetail(APIView):
    def get_objects(self, pk):
    try:
        return Student_academic_program.objects.get(pk=pk)
    except Student_academic_program.DoesNotExist:
        raise Http404

    def get(self, request, pk, format=None):
    student_academic_program = self.get_objects(pk)
        serialized_Student_academic_program = StudentAcademicProgramSerializer(student_academic_program)
        return Response(serialized_Student_academic_program.data)
我的模型使用外键定义如下:

$scope.addDegree = function(degree) {
            var variablesToSend =   {
                                        "student": {
                                            "student_id": 2773951, 
                                            "first_name": "Michaella", 
                                            "middle_name": "Helene", 
                                            "last_name": "Bonose", 
                                            "email": "email@dcccd.eddu", 
                                            "phone": 1234567890, 
                                            "cell_phone": 0123456789
                                        }, 
                                        "credits_completed": 0, 
                                        "academic_program_gpa": 0, 
                                        "primary_program": false,
                                        "academic_program": {
                                            "id": degree.id, 
                                            "acad_program_type": {
                                                "id": degree.acad_program_type.id, 
                                                "program_type": degree.acad_program_type.program_type
                                            }, 
                                            "program_title": degree.program_title, 
                                            "required_credits": degree.required_credits, 
                                            "min_gpa": degree.min_gpa, 
                                            "description": "description of the course", 
                                            "colleges": degree.colleges
                                        }
                                    }
            $http.post('/api/studentacademicprogram/', variablesToSend).then(function(response){
                console.log(response);
                alert('post added');
            }, function(response){
                console.log(response);
                alert('post not added');
            });
          };
class Student_academic_program(models.Model):
    student = models.ForeignKey(Student)
    academic_program = models.ForeignKey(Academic_program)
    credits_completed = models.IntegerField(null=True)
    academic_program_gpa = models.FloatField(null=True)
    primary_program = models.BooleanField()
好的,尽管如此,当我试图发布数据时,前端正在建立良好的连接。但这并没有发生。它有一个问题,当我在chrome调试工具中检查网络时,它给了我以下信息

{"student":[{"student_id":["StudentwiththisStudentidalreadyexists."]}]}
但在我的模型中,正如你所看到的,学生不是模型的主键。那么这里到底发生了什么?我如何回避这个问题