插入相关字段django rest框架

时间:2015-06-30 17:41:38

标签: python django django-rest-framework

我有这个简单的模型,我很难插入'注释的相关领域。通过django休息框架。

class Student(models.Model):
   firstName = models.CharField(max_length=100, blank=True, null=True)
   lastName = models.CharField(max_length=100, blank=True, null=True)
   prefLocation = models.ManyToManyField("Location", blank=True, null=True, related_name = 'prefLocation')

def __unicode__(self):
        return self.firstName

class LocationRegion(models.Model):
    regionName = models.CharField(max_length=100)

    def __unicode__(self):
        return self.regionName

class Location(models.Model):
    locationName = models.CharField(max_length=100)
    region = models.ForeignKey(LocationRegion, null=True, blank=True, related_name='locations')

    def __unicode__(self):
        return self.locationName

class Note(models.Model):
    text = models.CharField(max_length=1000)
    student = models.ForeignKey(Student, null=True, blank=True, related_name='notes')
    def __unicode__(self):
        return self.text

class StudentViewSet(viewsets.ModelViewSet):   
    queryset = Student.objects.all()
    serializer_class = StudentSerializer

我不确定是否需要使用ModelSerializer或通用Serializer。 Validated_data没有返回'注意'反序列化数据中的字段。我很感激序列化器的任何帮助。

由于

以下是我的序列化程序:

class StudentSerializer(serializers.ModelSerializer):

    def create(self, validated_data):
        def get_notes(self, obj):
            return validated_data['note']

        note = serializers.SerializerMethodField('get_notes')
        return Candidate.objects.create(**validated_data)

    class Meta:
        model = Student
        fields = ('id', 'firstName', 'lastName', 'note')

class NoteSerializer(serializers.ModelSerializer):

    class Meta:
        model = Note

0 个答案:

没有答案