我有一个Django应用程序,它使用
django-organizations
rest_framework
对于API。我有一个自定义的身份验证模型,它将用户与特定于组织的API令牌关联起来。
我有一个带有几个外键的模型,一个带有相关字段的序列化程序,以及一个用于API视图的ModelViewSet。我希望确保用于创建或修改模型实例的任何API调用都验证为相关字段指定的对象是否具有相同的所有者(组织)。
class Bar(models.Model):
uuid = models.UUIDField(
default=uuid.uuid4, editable=False, unique=True)
organization = models.ForeignKey(
Organization, on_delete=models.CASCADE)
class Foo(models.Model):
uuid = models.UUIDField(
default=uuid.uuid4, editable=False, unique=True)
organization = models.ForeignKey(
Organization, on_delete=models.CASCADE)
bar = models.ForeignKey(
Bar, on_delete=models.CASCADE)
class FooSerializer(serializers.ModelSerializer):
class Meta:
model = Foo
fields = ('uuid', 'organization', 'bar')
bar = serializers.SlugRelatedField(
slug_field='uuid', queryset=Bar.objects.all())
如何验证相关对象是否属于同一帐户?理想情况下,我能够覆盖为每个
RelatedField
在序列化程序中,但我认为这是不可能的。