Я пытаюсь «удалить» столбец, изменив его статус (да, он есть в моей модели и устанавливается при создании) вместо физического удаления его из базы данных. Поэтому я создал свой вид и запросил элемент. Когда я отправляю запрос на публикацию, я получаю сообщение об ошибке: «Столбец« seller_id »не может быть пустым». Я исследовал и вижу, что в models.py мне нужно просто изменить null=True
. Проблема в том, что я не хочу, чтобы этот столбец был нулевым при создании элемента. Есть ли способ, которым я могу обновить одно поле, не обновляя необнуляемое поле? Нужно ли при обновлении включать необнуляемую информацию?
models.py
seller = models.ForeignKey(AppUser, blank=True, null=False, on_delete=models.SET('inactive'), related_name='product', verbose_name='User')
views.py
class ProductDeleteView(generics.ListCreateAPIView):
queryset = Product.objects.all()
serializer_class = ProductDeleteSerializer
permission_classes = (IsAdminOrOwnerOrReadOnly,)
def get_queryset(self):
if self.kwargs.get('pk', None) is not None:
return Product.objects.get(pk=self.kwargs['pk'])
else:
data = {'full_messages': ['Could not delete product.']}
return Response(data, status=status.HTTP_403_FORBIDDEN)
def delete(self):
product = queryset
product.status = 99
product.save()
data = {'full_messages': ['Product deleted successfully.']}
return Response(data, status=status.HTTP_200_OK)
serializers.py
class UserDeleteSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = ['status']