У меня есть модель для трека
class Track(models.Model):
prepopulated_fields = {'slug': ('title',)}
musician = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=150)
description = models.TextField(null=True, blank=True)
track = models.FileField(upload_to="music")
image = models.ImageField(upload_to="tracks/", null=True, blank=True)
slug = models.SlugField(max_length=150)
genre = models.ForeignKey(Genre, on_delete=models.SET_NULL, null=True, blank=True)
album = models.ForeignKey(Album, on_delete=models.SET_NULL, related_name="tracks", null=True, blank=True)
def __str__(self):
return self.title
Сериализатор для этой модели
class TrackSerializer(serializers.ModelSerializer):
musician = serializers.CharField(read_only=True)
album = UserFilteredPrimaryKeyRelatedField(queryset=Album.objects)
class Meta:
model = Track
fields = '__all__'
И представление для обработки
class TrackViewSet(viewsets.ModelViewSet):
queryset = Track.objects.all()
serializer_class = TrackSerializer
permission_classes = (IsOwnerOrReadOnly, permissions.IsAuthenticatedOrReadOnly)
def perform_create(self, serializer):
serializer.save(musician=self.request.user)
Текстовые поля подставляются автоматически, а как сделать так чтобы картинка и сам трека грузился тоже?