【发布时间】:2016-11-22 01:27:29
【问题描述】:
我有一个“事件”模型,它有一个带有默认用户模型的 many2many 字段。
class Event(models.Model):
name = models.CharField(max_length=50)
type = models.CharField(max_length=50)
location = models.CharField(max_length=255)
start_hour = models.CharField(max_length=50)
end_hour = models.CharField(max_length=50)
creator = models.CharField(max_length=50)
info = models.CharField(max_length=255, default='')
users = models.ManyToManyField(User)
def __str__(self):
return self.name
现在,我正在尝试更新此 many2many 字段,如下所示;
//my serializers
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id',)
class EventSerializer(serializers.ModelSerializer):
users = UserSerializer(many=True)
class Meta:
model = Event
fields = ('id', 'users')
def update(self, instance, validated_data):
submitted_users = validated_data.get('users')
if submitted_users:
for user in submitted_users:
user_instance = User.objects.get(id=user.id)
instance.users.add(user_instance)
instance.save()
return instance
//views.py
class UpdateParticipants(generics.RetrieveUpdateDestroyAPIView):
queryset = Event.objects.all()
serializer_class = EventSerializer
但是,我收到如下图所示的错误
//这是我使用的APIView
【问题讨论】:
-
能否提供用户模型。
-
@marin 用户模型是 django 提供的默认用户模型
-
您确定使用
GET或PATH方法吗?
标签: django django-rest-framework django-serializer