from django.db import models from backend.models.abstract.my_model import MyModelVersionned, MyModelVersionnedSerializer, MyModelVersionnedViewSet from backend.fields import JSONField from backend.validators.tag import validate_content_against_config from backend.validators.tag.tags_config import USEFULL_LINKS_CONFIG IMPORTANCE_LEVEL = ( ('-', 'normal'), ('+', 'important'), ('++', 'IMPORTANT') ) class BasicModule(MyModelVersionned): comment = models.TextField(blank=True, default="") usefull_links = JSONField(default=list) importance_level = models.CharField( max_length=2, choices=IMPORTANCE_LEVEL, default='-', ) class Meta: abstract = True class BasicModuleSerializer(MyModelVersionnedSerializer): def my_validate(self, attrs): content = {'usefull_links': attrs['usefull_links']} config = {'usefull_links': USEFULL_LINKS_CONFIG} validate_content_against_config(config, content) return attrs class Meta: model = BasicModule fields = '__all__' class BasicModuleViewSet(MyModelVersionnedViewSet): serializer_class = BasicModuleSerializer