Tôi đang cố gắng thay đổi tên trường Model trong DRF Serializer giống như bí danh trong SQL. Tôi đã thử các phương pháp khác nhau nhưng không thể thành công.
models.py
class Park(models.Model):
name = models.CharField(max_length=256)
alternate_name = models.CharField(max_length=256, blank=True)
objects = models.GeoManager()
class Meta:
db_table = u'p_park'
def __unicode__(self):
return '%s' % self.name
def alias_alternate_name(self):
return self.alternate_name
serializers.py
class ParkSerializer(serializers.ModelSerializer):
location = serializers.Field(source='alias_alternate_name')
#location = serializers.SerializerMethodField(source='alias_alternate_name')
#alternate_name as location
class Meta:
model = Park
fields = ('id', 'name', 'location')
Tôi cũng đã thử thêm bí danh trong Django Queryset nhưng không thể thay đổi.
Đã cập nhật
Đây là ngoại lệ mà tôi đang phải đối mặt
Đối tượng AttributeError tại / ViewName / 'module' không có thuộc tính 'Field'
Tôi có thể làm cái này như thế nào?
serializers.SerializerMethodField
cách không? Ý tôi là thế này:serializers.SerializerMethodField('get_location')
vàdef get_location(self, obj): ...