от
У меня есть фреймворк Django. остальное приложение. Я хочу передать в двух параметров через URL, и если они передаются, я хочу, чтобы затем использовать каждый из параметров в качестве фильтра в объект QuerySet. Так что в принципе. если прошло не параметр, а затем захватить все данные для пользователей. если пространство имен передается в Я хочу фильтровать по пользователю и пространство имен. если пути пересекались, я хочу, чтобы отфильтровать пользователей, пространства имен, и путь. Сейчас это не делаю. У меня это настройки 3 различных URL-адресов, которые идут в 3 разных viewsets потому что встречаясь я пытаюсь сделать это один URL-адрес его ошибки и не работать вообще. Я тоже хочу, пространства имен и путь к быть дополнительно включен в URL, так что URL будет работать без namepsace и пути. Когда я попробовал один URL-адрес для этого потребуется как параметры для работы.... URL-адреса:
router.register(r'preferences', PreferenceUserViewSet, basename='Preference')
router.register(r'preferences/(?P. )', PreferenceNamespaceViewSet, basename='Preference

viewset:

class PreferenceUserViewSet(viewsets.ModelViewSet):

    model = Preference
    serializer_class = PreferenceSerializer

    def get_permissions(self):
        if self.action == 'create' or self.action == 'destroy':
            permission_classes = [IsAuthenticated]
        else: 
            permission_classes = [IsAdminUser]
        return [permission() for permission in permission_classes]

    @permission_classes((IsAuthenticated))
    def get_queryset(self):
        queryset = Preference.objects.filter(user_id=1)
        return queryset

class PreferenceNamespaceViewSet(viewsets.ModelViewSet):

    model = Preference
    serializer_class = PreferenceSerializer
    lookup_namepsace = 'namespace'

    def get_permissions(self):
        if self.action == 'create' or self.action == 'destroy':
            permission_classes = [IsAuthenticated]
        else: 
            permission_classes = [IsAdminUser]
        return [permission() for permission in permission_classes]

    @permission_classes((IsAuthenticated))
    def get_queryset(self):
        namespace = self.request.query_params.get('namespace')
        queryset = Preference.objects.filter(user_id=1, namespace=namespace)
        return queryset

class PreferencePathViewSet(viewsets.ModelViewSet):

    model = Preference
    serializer_class = PreferenceSerializer
    lookup_namepsace = 'namespace'
    lookup_path = 'path'

    def get_permissions(self):
        if self.action == 'create' or self.action == 'destroy':
            permission_classes = [IsAuthenticated]
        else: 
            permission_classes = [IsAdminUser]
        return [permission() for permission in permission_classes]

    @permission_classes((IsAuthenticated))
    def get_queryset(self):
        namespace = self.request.query_params.get('namespace')
        path = self.request.query_params.get('path')
        queryset = Preference.objects.filter(user_id=1, namespace=namespace, path=path)
        return queryset
Я пытаюсь придумать простое решение для этого процесса. Что должно произойти, если пространства имен, а путь не прошел взамен всех предпочтений. если пространство имен включена, настройки фильтра по пространству имен и же с пути.

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
...