小编Dan*_*usy的帖子

如何从 Jinja 的列表中获取一个元素?

所以我在我的 views.py 中传递了一个带有目录的渲染作为参数。像这样的东西:

def foo(request):
return render(request, 'webapp/foo.html', {'key': ['one', 'two', 'three']})
Run Code Online (Sandbox Code Playgroud)

现在我想在我的 HTML 文件中使用 Jinja 从目录值中获取一个元素,让我们先说。我所知道的只是如何使用 for 循环获取所有元素:

{% block content %}
   {% for val in key %}
      <p> {{ val }} </p>
   {% endfor %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

我的问题是是否有这样的事情?

{% block content %}
   <p> {{ key[0] }} </p>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

html python django jinja2

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

如何使用另一个 swagger 文档扩展 FastAPI 文档?

我决定在Python的FastApi框架中制作一个微服务网关。drf-yasg我的授权服务是用 Django 编写的,并且已经由包 swagger 文档生成。我在想是否有一种方法可以将身份验证的模式导入网关。我可以通过 http 格式提供模式json并从网关访问它。问题是如何将 FastApi 的文档与原始 swagger 模式文件集成。

python swagger openapi drf-yasg fastapi

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

权限类装饰器被忽略。“未提供身份验证凭据”响应

我正在使用 Django Rest Framework 作为我的 API 服务。在我的 settings.py 中,我有以下 REST_FRAMEWORK 设置:

REST_FRAMEWORK = {
    ...
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated'
    )
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在我想更改权限类别以允许任何人使用一个视图。我使用了 @permission_classes 装饰器。

class UserViewSet(viewsets.ModelViewSet):

    serializer_class = RegisterSerializer
    queryset = User.objects.all()

    @permission_classes([permissions.AllowAny,])
    def create(self, request, *args, **kwargs):
        data = request.data
        ...
Run Code Online (Sandbox Code Playgroud)

我应该能够在没有任何权限的情况下执行创建操作。相反,当我尝试访问 API 时收到身份验证错误。

    "detail": "Authentication credentials were not provided."
Run Code Online (Sandbox Code Playgroud)

根据文档@permission_classes 装饰器是这种权限覆盖的正确方法。这是 Django 2.2.4 和 DRF 3.10.2。

编辑

我忘了提及,我不想允许任何人访问任何视图,而只允许访问所选的视图。大多数视图应该具有全局设置的 IsAuthenticated 权限。

django permissions django-rest-framework

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