我有一个简单的过滤器:
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)
什么是更好的解决方案,也许我可以在过滤器类中配置它?
我无法连接到 ec2 上的实例。一切都很好,我认为现在 ufw 有问题。
当我配置我的服务器时,我为 80 端口启用了 ufw,也许它禁用了 22 端口。因为早期一切正常,但现在我无法通过 ssh 连接。
如何连接到我的 ec2 实例并再次允许 22 端口?