@action(detail=True, methods=['get'], url_path='password-reset/<uid64>/<token>', url_name='password-reset-confirm')
def password_reset(self, request, uid64, token):
pass
Run Code Online (Sandbox Code Playgroud)
这是我试图访问的网址(http://localhost:8000/user/2/password-reset/Mg/az44bk-48c221372ceaca98b4090a421131d5f3),但它一直返回404页面未找到
更新::
网址文件:
from django.urls import path
from django.urls.conf import include
from .views import UserViewset, CompanyViewset, ProfileViewset
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register('user', UserViewset, basename='user')
router.register('company', CompanyViewset, basename='company')
router.register('profile', ProfileViewset, basename='profile')
urlpatterns = [
path('', include(router.urls)),
path('<int:id>', include(router.urls)),
]
Run Code Online (Sandbox Code Playgroud)
视图文件:
@action(detail=True, methods=['post'], url_path='request-reset-email', url_name='request-reset-email')
def request_reset_password_email(self, request, pk):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
email = serializer.data.get('email')
user = self.get_object()
if email == user.email:
token = PasswordResetTokenGenerator().make_token(user)
current_site = get_current_site(request=request).domain …Run Code Online (Sandbox Code Playgroud) django custom-action token django-rest-framework django-rest-viewsets
我正在寻找一种访问上下文以按当前用户进行过滤的方法
class RemovePermissionsSerializer(serializers.Serializer):
user_permissions = serializers.PrimaryKeyRelatedField(
many=True, queryset=Permission.objects.filter(user = context.get('request').user)
)
Run Code Online (Sandbox Code Playgroud)
我无法访问上下文,因为它未定义,self.context 也无法访问