@sttp

С помощью django создал апи. В нем я использую ModelViewSet для модели Project. Как заставить работать метод delete и patch?

С помощью django создал апи. В нем я использую ModelViewSet для модели Project. Не могу заставить работать методы delete и patch.
мой код модели
class Project(models.Model):
    title = models.CharField('Имя', max_length=200)
    contract_number = models.CharField('Номер договора', max_length=200)
    description = models.TextField()
    create_date = models.DateTimeField("date published",
                                       auto_now_add=True)
    author = models.ForeignKey(User, on_delete=models.PROTECT,
                               related_name="projects")
    customer = models.ForeignKey('Customer',
                                 on_delete=models.PROTECT,
                                 related_name="projects")
    price = models.FloatField('Стоимость проекта')
    additional_pay = models.FloatField('Дополнительная оплата', blank=True,
                                       null=True)

    class Meta:
        ordering = ["-pk"]

    def __str__(self):
        return self.title[:15]

Мой код сериалайзера
class ProjectSerializer(serializers.ModelSerializer):

    class Meta:
        fields = ('title', 'contract_number', 'description', 'customer',
                  'price', 'additional_pay', 'pk')
        model = Project

Мой код вьюсета
class ProjectViewSet(viewsets.ModelViewSet):
    queryset = Project.objects.all()
    serializer_class = ProjectSerializer

    def perform_create(self, serializer):
        if serializer.is_valid:
            serializer.save(author=self.request.user)

Мои урл
router = DefaultRouter()
router.register(r'projects', ProjectViewSet, basename='projects')
router.register(r'projects_detail', UpdateDeleteViewSet, basename='projects_detail')
router.register(r'customers', CustomerViewSet, basename='customers')
router.register(r'banks', BankViewSet, basename='banks')
router.register(r'checks', CheckViewSet, basename='checks')

urlpatterns = [
    path('', include(router.urls))
]

Подскажите пожалуйста как заставить работать методы delete и patch. Самому с помощью гугла не получилось сделать.
  • Вопрос задан
  • 234 просмотра
Решения вопроса 1
iggor-markin
@iggor-markin
Python Developer
  • Какой запрос посылаешь?
  • На какой endpoint?
  • Какой код ответа?
  • Какие ошибки?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы