Здравствуйте.
Интересует вопрос, как омжно по-разному сериализовать один и тот же объект в зависимости от содержимого другого поля?
Модель:
class Images(models.Model):
file_name = models.FileField(upload_to = get_file_path_image)
ordering = models.IntegerField()
section = models.ForeignKey(Sections, related_name = "images")
icon = models.FileField(upload_to = get_file_path_icon)
icon_x = models.CharField(max_length = 500)
icon_y = models.CharField(max_length = 500)
text = models.CharField(max_length = 500)
link_type = models.CharField(max_length = 500)
link = models.FileField(upload_to = get_file_path_feature)
link_type бывает 3х типов - Видео, Панорама или Линк.
Соответственно в link записывается либо:
http://ec2**************.eu-west-1.compute.amazona...
либо
http://ec***************.eu-west-1.compute.amazona...
либо
google.com
Как в зависимости от типа указаного в link_type по разному сериализовать объект?
Делаю через serializers.SerializerMethodField('get_full_path_link')
def get_full_path_link(self, obj):
if str(obj.link_type) == u'Video':
return "http://ec***********.eu-west-1.compute.amazonaws.com" + obj.link.url