小编Tar*_*ani的帖子

如何使用 Djangorestframework 中的 UpdateAPIView 更新模型中的单个字段?

我正在学习通用视图并创建一些 API。如何更新字段:mobile来自型号Contacts

我想从 URL 获取用户 ID (mobile/update/user_id),但是在创建查询集时它不起作用。我想做一些像这里提到的那样的事情:

#queryset = Contacts.objects.filter(id=Usertab.objects.filter(id=self.kwargs['id']).first().contact.id))
Run Code Online (Sandbox Code Playgroud)
class UpdateMobileAPIView(generics.UpdateAPIView):
    queryset = Contacts.objects.filter(pk=Usertab.objects.all())

    serializer_class = ContactsSerializer
    lookup_field = 'pk'

    def update(self,instance,request):
        instance = self.get_object()
        serializer= self.get_serializer(instance,data=request.data,partial=True)
        if serializer.is_valid():
            serializer.save()
            return Response({"message":"mobile number updated successfully"})

        else:
            return Response({"message":"failed"})

Run Code Online (Sandbox Code Playgroud)

这些是模型

class Contacts(models.Model):

    mobile = models.IntegerField(null=False)
    Landline = models.IntegerField(null=False)
    whats_app = models.IntegerField(null=False)


class Usertab(models.Model):

    username = models.CharField(max_length=255,null=False,blank=False)
    address = models.CharField(max_length=255,null=False,blank=False)
    pin_code = models.CharField(max_length=255,null=False,blank=False)
    contact = models.ForeignKey(Contacts,related_name="contacts_user")


class Email(models.Model):

    user = models.ForeignKey(Usertab,related_name="user_email")
    email …
Run Code Online (Sandbox Code Playgroud)

django django-generic-views python-3.x django-serializer django-rest-framework

3
推荐指数
1
解决办法
1万
查看次数