私は "イベント"モデルを持っていて、デフォルトのユーザーモデルを持つmany2many
フィールドを持っています。'collections.OrderedDict'オブジェクトに 'username'という属性がありません
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
beloweイメージ
//で、これは私が
あなたはユーザーモデルを提供することができます。 – marin
@marinのユーザモデルはdjangoによって提供されるデフォルトのユーザモデルです – cano
あなたは 'GET'または' PATH'メソッドを使用していますか? –