小编Yur*_*aha的帖子

django_filters 仅需要应用于列表操作

我有一个简单的过滤器:

class ContentFilter(filters.FilterSet):
    app = filters.UUIDFilter(required=True)
    ...
Run Code Online (Sandbox Code Playgroud)

我在简单的 ModelViewSet 上使用了它

class ContentView(ModelViewSet):
    """View for Content"""
    serializer_class = ContentSerializer
    filterset_class = ContentFilter
Run Code Online (Sandbox Code Playgroud)

但是当我尝试 get /contents/:id/ 时出现错误:

{
  "app": [
    "This field is required."
  ]
}
Run Code Online (Sandbox Code Playgroud)

那么,我的问题。我怎样才能required=True只设置我的list动作?

我的解决方案是:

 def filter_queryset(self, queryset):
        """We need display filter only on list request, otherwise we get error on /id/ requests about app is required"""
        if self.action != 'list':
            self.filterset_class = None
        return super().filter_queryset(queryset)
Run Code Online (Sandbox Code Playgroud)

什么是更好的解决方案,也许我可以在过滤器类中配置它?

django-filters django-rest-framework

6
推荐指数
1
解决办法
1786
查看次数

如果我使用 ufw 关闭端口 22,我如何连接到 ec2?

我无法连接到 ec2 上的实例。一切都很好,我认为现在 ufw 有问题。

当我配置我的服务器时,我为 80 端口启用了 ufw,也许它禁用了 22 端口。因为早期一切正常,但现在我无法通过 ssh 连接。

如何连接到我的 ec2 实例并再次允许 22 端口?

ssh amazon-ec2 ufw

4
推荐指数
1
解决办法
1360
查看次数