小编Shi*_*ado的帖子

带有 DjangoFilterBackend 的 filterset_fields 不起作用

我的课:

class InvoicePeriodViewSet(viewsets.ModelViewSet):
    permission_classes = (
        permissions.AllowAny,
    )
    queryset = models.InvoicePeriod.objects.all()
    serializer_class = serializers.InvoicePeriodSerializer
    filter_backends = (django_filters.rest_framework.DjangoFilterBackend,)
    filterset_fields = ('days_interval', )
Run Code Online (Sandbox Code Playgroud)

它根本不起作用。我搜索了其他堆栈溢出问题,但它们没有帮助我(此处此处此处此处)。

我的应用程序中添加了“django-filter”(django-filter==1.0.4),我的django版本是(Django==1.11.1)和rest(djangorestframework==3.8.2)

我真的不想添加filter_class。我有过滤器类的其他视图,它正在工作,但我不想制作这么多过滤器类。如果filterset_fields功能有效,那就太完美了。如果不是,我将不得不通过一个函数创建 filter_class,这样我就不必创建 30+ 个。

django django-filter

7
推荐指数
1
解决办法
4021
查看次数

组内的导入源必须按字母顺序排列

好像我不知道字母表.请告诉我这里没有订购:

import * as React from 'react';
import {
  Badge,
  Button,
  ButtonGroup,
  Collapse,
  Dropdown,
  DropdownItem,
  DropdownMenu,
  DropdownToggle,
  Input,
  InputGroup,
  InputGroupAddon,
  Nav,
  Navbar,
  NavbarBrand,
  NavItem,
  NavLink,
  UncontrolledAlert,
} from 'reactstrap';
import {logoutUser} from '../actions/user';
import {positionSidebar,toggleSidebar,toggleVisibilitySidebar} from '../actions/navigation';

import s from './Header.scss';

import sender1 from '../../images/1.png';
import sender2 from '../../images/2.png';
import sender3 from '../../images/3.png';
Run Code Online (Sandbox Code Playgroud)

它在第22行给出了错误:"组内的导入源必须按字母顺序排列." (导入{positionSidebar ....)但他们是正确的订购!! (或许我必须回到学校:().

我试图禁用这个愚蠢的字母顺序:但我不能:

 "extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"],
 "ordered-imports": [true, {
   "import-sources-order": "any",
   "named-imports-order": "any",
   "grouped-imports": false,
   "module-source-path": "basename"
 }]
Run Code Online (Sandbox Code Playgroud)

这不起作用,错误重复.我会在github上发布它,但有很多关于这个的帖子,也许这不是一个bug.如果你认为它是bug,请告诉我,我会在那里发布.

我的tslint进口:

"tslint": "^5.7.0",
"tslint-config-prettier": …
Run Code Online (Sandbox Code Playgroud)

typescript tslint

3
推荐指数
1
解决办法
6872
查看次数

我不访问它时出现错误serializer.data

我有错误:

.save()访问后无法调用serializer.data。如果需要在提交数据库之前访问数据,请改为检查“ serializer.validated_data”。

即使我不访问serialized.data但访问了serialized.validate_data。

这是我的代码:

views.py

class Login(APIView):
    """
    Verify the login given is correct. #FIXME
    """
    def post(self, request, format=None):
        """Process the user given

        """

        serializer = LoginSerializer(data=request.data)

        if not serializer.is_valid():
            return Response(
                serializer.errors,
                status=status.HTTP_400_BAD_REQUEST
            )

        if serializer.verify_user(serializer.validated_data):
            serializer.save()
            return Response(
                serializer.data,
                status=status.HTTP_201_CREATED
            )
Run Code Online (Sandbox Code Playgroud)

verify_user是我执行的自定义函数。如果我不在该函数中使用validated_data,则save()正在执行。如果不是,它将给出该消息。在内部,我不修改validated_data:

serializers.py

class LoginSerializer(serializers.Serializer):
    """Interface fields for login api
    """

    username = serializers.CharField(max_length=50)
    password = serializers.CharField(max_length=255)
    origin = serializers.CharField(max_length=255, required=False)

    def verify_user(self, validated_data):
        """
        Try to authenticate a user with …
Run Code Online (Sandbox Code Playgroud)

django python-3.x visual-studio-code

2
推荐指数
1
解决办法
373
查看次数