Genericviewset(mixins.UpdateModelMixin)
У меня проблема с моим кодом, я пытаюсь написать общий набор представлений в DRF для обновления моего представления, но у меня возникает ошибка. Вот моя модель портфеля:
class Portfolio(models.Model):
name = models.CharField(max_length=50, blank=False, null=True, default='portfolio')
user = models.ForeignKey('accounts.User', on_delete=models.DO_NOTHING, related_name='investor')
assets = models.ManyToManyField(Assets, related_name='portfolio_assets')
Это мой сериализатор:
class PortfolioSerializer(serializers.ModelSerializer):
class Meta:
model = Portfolio
fields = ['id', 'name', 'user', 'assets']
и в конце мой вид и URL:
class PortfolioUpdateDetailDestroy(viewsets.GenericViewSet, mixins.RetrieveModelMixin,
mixins.DestroyModelMixin, mixins.UpdateModelMixin
):
queryset = Portfolio.objects.all()
serializer_class = PortfolioSerializer
def get(self, request, pk):
return self.retrieve(request, pk)
def put(self, request, pk):
return self.update(request, pk)
router = DefaultRouter()
router.register("Portfolio_Detail", PortfolioUpdateDetailDestroy, basename="Portfolio_Detail")
urlpatterns = [
path('', include(router.urls))]
Когда я пытаюсь обновить объект, я должен снова передать все поля, то есть я должен обновить все поля вместе, если я хочу обновить только поле имени, я получаю эту ошибку
"user": [
"Invalid pk \"0\" - object does not exist."],
"assets": [
"Invalid pk \"0\" - object does not exist."]