使用rest框架模型序列化程序更新django-ManytoMany关系



使用rest框架模型序列化程序更新django-ManytoMany关系

我正在使用django,只是通过rest框架开始使用API。我正在为概要文件模型使用内置的模型和视图序列化程序。轮廓模型具有";下面的";attripute跟踪个人资料的追随者,作为与其他个人资料的许多关系。通过我的API,当按下following按钮时,我试图添加一个配置文件。然而,通过API的Patched请求代替了整个following集,而不是简单地附加它;添加";django的m2m方法。有什么建议吗?

## models.py ##
class Profile(models.Model):
user = models.OneToOneField('User', on_delete=models.CASCADE)
following = models.ManyToManyField('Profile', blank=True, null = True, symmetrical=False)
def __str__(self):
return str(self.user.username)

serializers.py

`class ProfileSerializer(serializers.ModelSerializer):

class Meta:
model = Profile
fields = ('id', 'user', 'following')
## views.py
class ProfileView(viewsets.ModelViewSet):
queryset = Profile.objects.all()
serializer_class = ProfileSerializer

`router=路由器。默认路由器((router.register("配置文件",views.ProfileView(

urlpatterns = [
path("", views.index, name="index"),
path("login", views.login_view, name="login"),
path("logout", views.logout_view, name="logout"),
path("register", views.register, name="register"),
path('following', views.following, name = 'following'),
path('profile/<str:username>', views.profile, name = 'profile'),

#API
path('api/', include(router.urls))`

您可以覆盖保存方法并执行以下操作:

profile.following.add(Profile.objects.get(id=id))

最新更新