使用Django RESTAPI和AngularJS更新数据库中的行

时间:2016-01-02 12:36:36

标签: angularjs django django-rest-framework

我正在尝试这样做,以便我可以从angularJS应用程序POST和更新数据库行,但我似乎无法在我的数据库中添加新条目。

事情发布没有错误但是当我去检查数据库时,所有添加的数据都是“无”。

我已经编写了这个方法来保存带有相应讲座ID的Notes,其中Lecture是Notes的一个属性。

saveNotes: function(notes, lecture_id, callback) {
      $http({
        method: 'POST',
        url: apiRoute + 'notes/',
        data: {
          "notes": notes,
          "lecture_id": lecture_id
        }
      }).success(callback);
    }

我写了这些观点:

class LectureViewSet(viewsets.ModelViewSet):
    serializer_class = LectureSerializer

    def get_queryset(self):
        course_id = self.request.query_params.get('course',False)
        if course_id:
            lectures = Lecture.objects.filter(course=course_id)
        else:
            lectures = Lecture.objects.all()
        return lectures


class NotesViewSet(viewsets.ModelViewSet):
    queryset = Notes.objects.all()
    serializer_class = NotesSerializer

这些序列化器:

class LectureSerializer(serializers.ModelSerializer):
    class Meta:
        model = Lecture
        fields = ('id', 'lecture_no', 'title', 'youtubeLink', 'course', 'keywords')

class NotesSerializer(serializers.ModelSerializer):

    lecture = LectureSerializer(read_only=True, many=True)

    class Meta:
        model = Notes
        fields = ('id', 'notes', 'lecture')

是否有人能够发现导致添加“无”值的错误?另外,有没有办法让这些字段更新而不是发布新字段?

谢谢!

包含的型号:

class Lecture(models.Model):
    lecture_no = models.IntegerField(null=True)
    title = models.CharField(max_length=128, unique=True, null=True)
    youtubeLink = models.CharField(max_length=128, unique=True, null=True)
    course = models.ForeignKey(Course, null=True)
    keywords = models.TextField(max_length=300, null=True)
    #Could add Next Rerun Date & Time

    def __str__(self):
        return self.title

class Notes(models.Model):
    notes = models.TextField(null=True)
    lecture = models.ForeignKey(Lecture, null=True)

    def __str__(self):
        return str(self.notes)

0 个答案:

没有答案
相关问题