Можно ли выбрать то, что вы хотите удалить, в Django API PUT?

#django #django-rest-framework

Вопрос:

У меня есть следующая страница: введите описание изображения здесь

На этой странице выполняется следующее: редактируйте данные, вводя новые данные, предоставленные пользователем, а также таблицу, в которой зарегистрирован интерфейс, и каждый интерфейс имеет свой собственный флажок. В случае, если пользователь хочет удалить определенный интерфейс, пользователь может установить флажок и нажать кнопку сохранить, чтобы код внес изменения. Мне было интересно, возможно ли в рамках Django API что-то подобное? Я уже создал представление API для редактирования части, в которой пользователь может вводить новые данные для обновления существующих данных, но мне было интересно, можно ли выполнить удаление в рамках API ? Если можно, то как это делается?

Ниже приведены мои коды :

models.py

 class DeviceDetail(models.Model):
    
    SUBNET_CHOICES = (
    ('16','16'),
    ('17', '17'),
    ('18','18'),
    ('19','19'),
    ('20','20'),
    ('21', '21'),
    ('22', '22'),
    ('23', '23'),
    ('24', '24'),
    ('25', '25'),
    ('26', '26'),
    ('27', '27'),
    ('28', '28'),
    ('29', '29'),
    ('30', '30'),
    )

    DEV_MODS =(
        ('Catalyst 9606R', 'Catalyst 9606R'),
        ('C9300L-48T-4X', 'C9300L-48T-4X')
    )

    
    mgt_interface = models.CharField(max_length=50)
    subnetmask = models.CharField(max_length=2, choices = SUBNET_CHOICES)
    ssh_id = models.CharField(max_length=50)
    ssh_pwd = models.CharField(max_length=50)
    enable_secret = models.CharField(max_length=50)
    dev_mod=models.CharField(max_length=50, choices = DEV_MODS) ##device_model replacement
    DD2DKEY = models.ForeignKey(Device, on_delete=models.CASCADE) ##The key to link up the tables
    
    def __str__(self):
        return self.hostname
 

serializers.py

 class DeviceDetailSerializers(serializers.ModelSerializer):
    class Meta:
        model = DeviceDetail
        fields = ['mgt_interface', 'subnetmask', 'ssh_id', 'ssh_pwd', 'enable_secret', 'dev_mod']
 

views.py

 @api_view(['PUT'])
def update_device(request, pk=None):
    if pk != None:
        devicedetail = DeviceDetail.objects.get(DD2DKEY=pk)
        devdserializer = DeviceDetailSerializers(devicedetail, data = request.data)
        if devdserializer.is_valid():           
            devdserializer.save() 
            results = {            
                "device_details" : devdserializer.data,
            }
            return Response(results, status=status.HTTP_201_CREATED)        
        return Response(devdserializer.errors, status=status.HTTP_400_BAD_REQUEST)