Обновление api для модели пользователя и модели профиля OnetoOne в Django Rest Framework

У меня есть одна модель под названием profile, которая связана с Django User Model через отношения один к одному. Я хочу создать конечную точку api, которая будет принимать все данные и обновлять обе таблицы, когда это необходимо.

Models.py

class Profile(models.Model): 
     user = models.OneToOneField(User, on_delete=models.CASCADE) 
     manager = models.ForeignKey( 
         User, on_delete=models.SET_NULL, null=True, blank=True, related_name="manager" 
     ) 
  
     middle_name = models.CharField(max_length=50, blank=True) 
  
     fpo = models.ForeignKey(Fpo, on_delete=models.CASCADE, null=True, blank=True) 
  
     image = models.ImageField( 
         upload_to="profile_images", 
         blank=True, 
         null=True, 
         default=None, 
         verbose_name="Profile Image", 
     ) 
  
     type = models.IntegerField( 
         choices=UserTypeChoice.choices, 
         default=UserTypeChoice.FARMER, 
         verbose_name="User Type", 
     ) 
  
     gender = models.PositiveSmallIntegerField( 
         choices=GenderChoice.choices, null=True, blank=True 
     ) 
  
     date_of_birth = models.DateField(null=True, blank=True) 
  
     pincode = models.CharField( 
         max_length=6, 
         verbose_name="Pincode", 
         blank=True, 
         null=True, 
     ) 
  
     gat_no = models.CharField( 
         max_length=20, 
         verbose_name="GAT No", 
         blank=True, 
         null=True, 
     ) 
  
     landholding_in_acre = models.DecimalField( 
         max_digits=10, 
         decimal_places=2, 
         default=0, 
     ) 
  
     is_member = models.BooleanField(default=False) 

serializers.py


class ProfileSerializer(serializers.ModelSerializer): 
     class Meta: 
         model = Profile 
         fields = ( 
             "middle_name", 
             "manager", 
             "fpo", 
             "type", 
             "date_of_birth", 
             "gender", 
             "gat_no", 
             "landholding_in_acre", 
             "landholding_registred_in_acre", 
             "plotting_in_acre", 
             "is_member", 
         ) 
 

views.py

class FarmersDetailView(generics.RetrieveUpdateDestroyAPIView): 
     serializer_class = FarmerDetailsSerializer 
     permission_classes = (permissions.IsAuthenticated,) 
     authentication_classes = (TokenAuthentication,) 
  
     def get_queryset(self): 
         if self.request.user.is_authenticated: 
             if self.request.user.profile.type == 3: 
                 return User.objects.filter(profile__type=4, manager=self.request.user) 
             return User.objects.filter(profile__type=4) 
         return User.objects.none()

Не удается обновить с помощью одного api. Итак, я хочу обновлять модели профиля и пользователя одновременно через одну конечную точку. Когда я буду обновлять first_name, last_name, email и имя пользователя в таблице user и другие детали в таблице profile.

Вернуться на верх