forked from rc/aircox
40 lines
1.0 KiB
Python
40 lines
1.0 KiB
Python
from rest_framework import serializers
|
|
from taggit.serializers import TaggitSerializer, TagListSerializerField
|
|
|
|
from ..models import Track, UserSettings
|
|
|
|
__all__ = ("TrackSerializer", "UserSettingsSerializer")
|
|
|
|
|
|
class TrackSerializer(TaggitSerializer, serializers.ModelSerializer):
|
|
tags = TagListSerializerField()
|
|
|
|
class Meta:
|
|
model = Track
|
|
fields = (
|
|
"pk",
|
|
"artist",
|
|
"title",
|
|
"album",
|
|
"year",
|
|
"position",
|
|
"info",
|
|
"tags",
|
|
"episode",
|
|
"sound",
|
|
"timestamp",
|
|
)
|
|
|
|
|
|
class UserSettingsSerializer(serializers.ModelSerializer):
|
|
# TODO: validate fields values (playlist_editor_columns at least)
|
|
class Meta:
|
|
model = UserSettings
|
|
fields = ("playlist_editor_columns", "playlist_editor_sep")
|
|
|
|
def create(self, validated_data):
|
|
user = self.context.get("user")
|
|
if user:
|
|
validated_data["user_id"] = user.id
|
|
return super().create(validated_data)
|