0
私はそれで私は、ユーザーの情報を編集することができ、UserUpdateAPIView
を持っている:スーパーユーザーとユーザー自身がAPIにアクセスできるようにするにはどうすればよいですか?
class UserUpdateAPIView(RetrieveUpdateAPIView):
queryset = User.objects.filter(is_admin=False, is_staff=False, is_superuser=False).exclude(status=4)
serializer_class = UserDetailSerializer
lookup_field = "username"
def perform_update(self, serializer):
serializer.save()
UserDetailSerializer
:
class UserDetailSerializer(ModelSerializer):
"""
user detail
"""
class Meta:
model = User
exclude = [
'password',
]
depth = 1
を、すべてのユーザーがUserUpdateAPIView
ので、その悪いデザインにアクセスすることができます。私はスーパー管理者とユーザー自身がAPIViewにアクセスできるようにしたい、どのように実装するのですか?
私はpermissions = [IsAdminUser]
を使用して管理者ユーザーがこのAPIにアクセスできるようにすることができますが、スーパー管理ユーザーとそのユーザー自身がアクセスできるようにしたいと考えています。
「obj」とはどういう意味ですか?あなたはログインしたユーザーであることを意味しますか?または 'obj'がデータ(ユーザのデータ)であることを意味しますか? – fanhualuojin154873
objは、取得するオブジェクトを意味し、 'get_object'メソッドによって返されます。ここで取得されるのは、Userインスタンスです。これは、任意のモデルインスタンスであり、ビューで取得するMoldeに依存します。 – Ykh
私は 'django-1.11.5'を使って、is_authenticatedをどのようにインポートするのですか? – fanhualuojin154873