Django Rest Framework Model viewset редактируется только тем пользователем, который создал поиск по имени пользователя. - PullRequest
0 голосов
/ 23 января 2020

У меня есть модель сервисов, которая связана с моделью пользователя с использованием внешнего ключа. Я хочу, чтобы пользователи могли выполнять операции crud по URL-адресу http://localhost: 8000 / api / users / username-go-here / services / edit / services / . Как мне сделать модель просмотра, которая может создавать, редактировать и удалять только если вы являетесь этим пользователем? Я хочу, чтобы имя пользователя было полем поиска. Вся помощь очень ценится.

Вот модель:

class Services(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='artistservices')
    name = models.CharField(max_length=50)

viewset:

from .serializers import ServicesSerializer
class EditUserServicesView(viewsets.ModelViewSet):
    queryset=Services.objects.all()
    serializer_class = ServicesSerializer

urls.py:

from .views import EditUserServicesView
from rest_framework.routers import DefaultRouter
from rest_framework import routers
router = routers.DefaultRouter()
router.register('services', EditUserServicesView)
from django.urls import path, include

urlpatterns = [
path('users/<username>/services/edit/', include(router.urls)),
]

serializers.py

from models import Services
class ServicesSerializer(serializers.ModelSerializer):
    class Meta: 
        model = Services
        fields = '__all__'

Большое спасибо!

...