Я создаю веб-сайт, на котором люди могут создавать посты с описанием чего-либо и загружать в него несколько изображений по мере их создания. Также, несмотря на то, что я хочу иметь возможность загружать множество изображений одновременно, я хочу, чтобы пользователи могли удалять одно изображение из сообщения. Моя главная проблема заключается в том, как будет настроена моя модель или вид, чтобы пользователи могли загружать несколько изображений в соответствии с планом. Я пытался установить множество отношений, как в моей модели ниже, но это просто не работает
class Photo(models.Model):
'''
photos model
'''
url = models.ImageField(blank=True, null=True)
class Post(models.Model):
'''
post model, allows users to post pictures and describe their feeling at the moment
'''
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.DO_NOTHING, related_name="post_user")
title = models.CharField(max_length=100)
description = models.TextField(null=True)
photos = models.ManyToManyField(Photo, related_name="assets")
likers = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name="post_likers")
created_on = models.DateTimeField(auto_now_add=True)
updated_on = models.DateTimeField(auto_now=True)
def __str__(self):
return self.title
serializers.py
class PhotoSerializer(serializers.ModelSerializer):
class Meta:
model = Photo
fields = ['pk', 'url']
class PostSerializer(serializers.ModelSerializer):
user = serializers.SlugRelatedField(read_only=True, slug_field='slug')
created_on = serializers.SerializerMethodField(read_only=True)
photos = PhotoSerializer()
class Meta:
model = Post
exclude = ['likers', 'updated_on', 'id']
views.py
class PostCreateView(generics.CreateAPIView):
'''
Create collaborations for people to show interests for it
'''
queryset = mod.Post.objects.all()
serializer_class = srl.PostSerializer
permission_classes = [IsAuthenticated]
def create(self, request):
serializer_context = {"request": request}
serializer = self.serializer_class(
data=request.data,
context=serializer_context
)
if serializer.is_valid():
serializer.save(user=request.user)
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)