4. Feature requirements
● Multilingual support
● Different images based on the screen density
● Color fields
● Serialization
● Caching
● Administration
5. Multilingual support
Django Parler
class Plan(TranslatableModel):
detail_image = ScreenDensityImageField(upload_to='plans/detail_images')
translations = TranslatedFields(
title=models.CharField(max_length=255),
short_description=models.TextField(),
description=models.TextField(),
)
6.
7. Different images based on screen density
● Our screen sizes : 1x, 1.5x, 2x, 3x
● Pixel perfect design
● Django Multiupload
8. Color fields
Django Colorful
class Plan(TranslatableModel):
start_color = RGBColorField()
end_color = RGBColorField()
content_color = RGBColorField()
9.
10. Serialization
● DRF Serializers
● Different fields for list and detail
class PlanSerializer(ShortListSerializerMixin, serializers.ModelSerializer):
class Meta:
model = Plan
list_fields = ['id', 'title', 'short_description']
fields = list_fields + ['description']
11. Caching
● Per object caching
● Key attributes
○ Language
○ Screen Density
● Redis HSET
● Easy to invalidate