我正在学习通用视图并创建一些 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