因此,我有一个与欧文斯(ManyToMany)、学生和工作人员相关的用户和学校模型,如果所有者注册并创建了一所学校,我希望对request.user的Owens字段执行部分更新,从拥有空/空或以前创建的学校到添加新创建的学校。
用户模型
class User(AbstractBaseUser, PermissionsMixin):
class SEX(models.TextChoices):
...
class TYPES(models.TextChoices):
...
...
owens = models.ManyToManyField(School, verbose_name=_(
"School_owner"), related_name='Schoolowner', blank=True)serializers.py
class SchoolSerializerBase(serializers.ModelSerializer):
...
class Meta:
model = School
fields = ...
def validate(self, attrs):
...
return attrs
def create(self, validated_data):
instance = School.objects.create(
...
)
instance.save()
return instance我有一个简单的视图
class CreateSchoolView(generics.CreateAPIView):
queryset = School.objects.all()
permission_classes = [IsSchoolOwner, ]
serializer_class = SchoolSerializerBase我的问题:如何更新request.user.ownes字段并将学校实例添加到其中??
发布于 2022-02-11 18:02:04
可以通过在序列化程序中重写.create()来获得该结果。
在您的序列化程序中
def create(self, validated_data):
instance = super().create(validated_data) # this is the school
# you then create the entry for your User+School
# example
user = self.context['request'].user
user.owens.add(instance)
return instancehttps://stackoverflow.com/questions/71084297
复制相似问题