Django: Сохранение созданного объекта для пользователя?
У меня есть модель загрузок, и я хочу связать загруженные изображения с пользователем, чтобы впоследствии каждый пользователь мог просматривать только свои объекты, поэтому я пытаюсь сохранить созданные объекты для аутентифицированного пользователя, но это не работает, и я продолжаю получать owner =null на моей модели
class Uploads(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
title=models.CharField(max_length=500,default='none')
image=models.ImageField(upload_to='media',unique=True)
created_at = models.DateTimeField(auto_now_add=True)
associatedFile=models.ForeignKey(to=File, on_delete=models.CASCADE,null=True)
owner=models.ForeignKey(User,related_name="uploads", on_delete=CASCADE,null=True)
class IsOwnerFilterBackend(filters.BaseFilterBackend):
def filter_queryset(self, request, queryset, view):
queryset=Uploads.objects.all()
return queryset.filter(owner=request.user)
class UploadView(viewsets.ModelViewSet):
queryset=Uploads.objects.all()
serializer_class=UploadSerializer
filter_backends = (IsOwnerFilterBackend,)
@api_view(['GET', 'POST'])
def methodes(self,request,*args,**kwargs):
if request.method=='POST':
serializer=UploadSerializer(data=request.data)
if serializer.is_valid():
serializer.save(owner=self.request.user)
return Response("test_token success", status=status.HTTP_200_OK)
return HttpResponse({'message':'error'},status=400)
elif request.method=='GET':
images=Uploads.objects.filter(owner=self.request.user)
serializers=UploadSerializer(images[0],many=False)
return JsonResponse(serializers.data,safe=False)
class UploadSerializer(serializers.ModelSerializer):
image = Base64ImageField(
max_length=None, use_url=True,
)
owner=serializers.ReadOnlyField()
class Meta:
model = Uploads
fields = '__all__'
попробуйте это
class IsOwnerFilterBackend(filters.BaseFilterBackend):
def filter_queryset(self, request, queryset, view):
queryset=Uploads.objects.all()
return queryset.filter(owner=request.user)
class UploadView(viewsets.ModelViewSet):
queryset=Uploads.objects.all()
serializer_class=UploadSerializer
filter_backends = (IsOwnerFilterBackend,)
@api_view(['GET', 'POST'])
def methodes(self,request,*args,**kwargs):
if request.method=='POST':
serializer=UploadSerializer(data=request.data)
if serializer.is_valid():
serializer.save(owner=request.user)
return Response("test_token success", status=status.HTTP_200_OK)
return HttpResponse({'message':'error'},status=400)
elif request.method=='GET':
images=Uploads.objects.filter(owner=request.user)
serializers=UploadSerializer(images[0],many=False)
return JsonResponse(serializers.data,safe=False)