【发布时间】:2015-12-27 20:13:49
【问题描述】:
我有一个模型“Interview”和一个模型“Notes”。 Interview 是 Notes 的外键。
class Notes(models.Model):
notes = models.TextField(null=True)
interview = models.ForeignKey(Interview, null=True)
def __str__(self):
return self.interview
我正在使用 http 请求来 GET 和 POST 到服务器。
由于采访是外键,我如何准确地将注释发布到服务器?目前我的帖子功能如下所示:
saveNotes: function(interview, notes) {
$http({
method: 'POST',
url: apiroute + '/notes',
data: {
"notes": notes,
"interview": {
//attr of interview
}
}
}).success(callback);
}
这看起来是正确的,但我遇到了:
POST http://127.0.0.1:8000/app/api/notes 500(内部服务器错误)
我使用“notes/”作为我的网址,我得到了:
POST http://127.0.0.1:8000/student/api/notes/ 400(错误请求)
有人可以猜测我的问题可能是什么吗?
谢谢!
编辑:这是我的序列化程序文件。面试换成讲座
class LectureSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Lecture
fields = ('id', 'lecture_no', 'title', 'youtubeLink', 'course', 'keywords')
class NotesSerializer(serializers.HyperlinkedModelSerializer):
lecture = LectureSerializer(read_only=True, many=True)
class Meta:
model = Notes
fields = ('id', 'notes', 'lecture')
api 视图:
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
【问题讨论】:
-
你也可以分享你的api视图吗?你为什么用
HyperlinkedModelSerializer而不是ModelSerializer? -
@DhiaTN 我按照教程启动了使用 HyperlinkedModelSerializer 的 restAPI,我不应该使用它吗?
标签: angularjs django ionic http-post django-rest-framework