我有一个基于类的 ListView,我想通过登录的 user_id 过滤对象,因为项目模型有一个指向 settings.AUTH_USER_MODEL 的外键
class ItemListView(LoginRequiredMixin, StaffRequiredMixin, ListView):
model = Item
template_name = "items/list_items.html"
Run Code Online (Sandbox Code Playgroud)
在基于函数的视图中,我可以使用 request.user 但不能在基于通用类的视图中执行此操作。关于如何最好地做到这一点的任何想法?
这是项目模型
class Item(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL)
description = models.CharField(max_length=300)
Run Code Online (Sandbox Code Playgroud) django django-generic-views python-3.x django-class-based-views django-1.8
我仍然掌握使用curl 来测试来自终端的API 请求的技巧。我在格式化方面遇到了特殊问题,因为我尝试的 API 请求需要在每次调用时传递 JWT 令牌。\n我尝试传递的请求是 PUT 请求,我的问题是在哪里放置 JWT 令牌授权的标头。\n我尝试了以下格式,但收到错误“无法解析主机:\xe2\x80\x94H”curl:(6) 无法解析主机:“授权:”
\n\ncurl -X PUT -H "Authorization: JWT <token here>" -d "field=value" "https://url/update_record/<id>/"\n
Run Code Online (Sandbox Code Playgroud)\n\n有任何想法吗?
\n\n正在访问的呼叫具有以下权限
\n\nclass Item_Update_APIView(UpdateAPIView):\n authentication_classes = [SessionAuthentication, BasicAuthentication, JSONWebTokenAuthentication]\n permission_classes = [IsAuthenticated]\n serializer_class = ItemSerializer\n\n def get_queryset(self):\n id = self.kwargs[\'id\']\n return Item.objects.filter(id__exact=id)\n
Run Code Online (Sandbox Code Playgroud)\n\n序列化器:
\n\nclass ItemSerializer(ModelSerializer):\n\n class Meta:\n model = Item\n fields = [\n \'id\',\n \'booleanField\',\n ]\n
Run Code Online (Sandbox Code Playgroud)\n curl jwt django-rest-framework curl-commandline json-web-token