小编Axi*_*xil的帖子

带有分页的 Django API 列表 - 页面不是 JSON 可序列化的

我正在尝试为带分页的列表创建 Django API,但出现此错误

TypeError: Object of type 'Page' is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

以下是我的 API 代码:

@api_view(['POST'])
def employee_get_list_by_page(request):
    # ----- YAML below for Swagger -----
    """
    description: employee_get_list_by_page
    parameters:
      - name: token
        type: string
        required: true
        location: form       
      - name: page
        type: string
        required: true
        location: form   
      - name: page_limit
        type: string
        required: true
        location: form                   
    """
    token = request.POST['token']
    try:  
        auth_employee = AuthEmployeeSessionToken.objects.get(token=token) 

    except AuthEmployeeSessionToken.DoesNotExist:   
        return Response("Invalid Token", status=status.HTTP_406_NOT_ACCEPTABLE)

    employee_list = Employee.objects.filter(company = auth_employee.employee.company.id) 


    page = request.GET.get('page', request.POST['page'])
    paginator …
Run Code Online (Sandbox Code Playgroud)

python django serialization pagination json

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

Django url 路径迁移 (1.11->3.1) 路由符号警告

从 Django 1.11 迁移时,我在 Django 3.1.5 中收到此警告

?: (2_0.W001) Your URL pattern 'employee/attendanceactivity/attendance/(?P<attendance_id>\d+)/' [name='employee-attendanceactivity-detail'] has a route that contains '(?P<', begins with a '^', or ends with a '$'. This was likely an oversight when migrating to django.urls.path().
Run Code Online (Sandbox Code Playgroud)

这是 url.py 的声明

path('employee/attendanceactivity/attendance/(?P<attendance_id>\d+)/', 
    views.employee_attendanceactivity_detail, name = 'employee-attendanceactivity-detail'), 
Run Code Online (Sandbox Code Playgroud)

我应该如何解决这个警告?谢谢

django-urls django-3

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

在HTML 5中接受大于0的数字的正确验证模式是什么?

我试图使用文本输入(而不是数字)来对超过0的条件进行数字验证.所以,它不应该接受输入-1,-2,0.但是1,100,2000,4000000 ..可能做的对它的限制.

是否有使用HTML5验证做类似的模式?(不是js/jq只是HTML5验证)

这是我尝试但完全不满足我的要求:

  • 这完美的工作,但我不想使用数字类型,但"文本"

http://jsfiddle.net/5Krwy/

<input id="quantity" name="quantity" type="number" min="1" max="100000" required />
Run Code Online (Sandbox Code Playgroud)
  • 现在这使用我想要的类型文本,但它仍然可以接受0.如何改进这种模式?

http://jsfiddle.net/5Krwy/1/

<input id="quantity" name="quantity" type="text" pattern = "[0-9]{1,5}" required />
Run Code Online (Sandbox Code Playgroud)

html html5

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

Django 查询将参数传递到values()

我有一个像这样的 Django 查询,我希望能够从变量传递“values”参数。出于这个原因,我可以标准化所有列表值,否则它将在每个值上进行硬编码。

例如,这有效:

employee_list = Employee.objects.all().values("id", "username").order_by('id') 
Run Code Online (Sandbox Code Playgroud)

但我不能这样做。它不起作用:

val_params = ["id", "username"]
employee_list = Employee.objects.all().values(val_params).order_by('id') 
Run Code Online (Sandbox Code Playgroud)

我可以使用什么样的 val_params 传递给values()?有没有办法做到这一点 ?

python sql database django parameters

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

cordova-plugin-console不支持这个项目的cordova-ios版本

我已将环境从离子1升级到离子3.19.1.但是,我的项目仍然是离子v1(或者如果我在v1下面没有误,不确定)

我跑了命令

ionic cordova build ios --v1
Run Code Online (Sandbox Code Playgroud)

这是失败的.

Discovered plugin "cordova-plugin-console" in config.xml. Adding it to the project
Installing "cordova-plugin-console" for ios
Plugin doesn't support this project's cordova-ios version. cordova-ios: 4.5.4, failed version requirement: <4.5.0
Skipping 'cordova-plugin-console' for ios
Run Code Online (Sandbox Code Playgroud)

它是什么意思以及如何解决它?

我的环境如下:

ionic version 3.19.1
cordova version 8.0.0
npm version 5.6.0
macos High Sierra 10.13.1
xcode 9.2
Run Code Online (Sandbox Code Playgroud)

ios ionic-framework cordova-plugins ionic3

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

如何使用postgres窗口函数计算会计软件中的余额

我遇到了同样的问题,但我正在使用Postgres.

用mysql计算余额

有一个包含以下数据的表:

ID      In       Out 
1      100.00    0.00   
2       10.00    0.00   
3        0.00   70.00    
4        5.00    0.00    
5        0.00   60.00   
6       20.00    0.00     
Run Code Online (Sandbox Code Playgroud)

现在我需要一个查询,它给出了以下结果:

ID      In       Out    Balance
1      100.00    0.00   100.00
2       10.00    0.00   110.00
3        0.00   70.00    40.00
4        5.00    0.00    45.00
5        0.00   60.00   -15.00
6       20.00    0.00     5.00
Run Code Online (Sandbox Code Playgroud)

如何最好地处理"平衡"计算.我被告知postgres中有窗口函数,如何使用postgres窗口函数完成?

谢谢.

sql database postgresql accounting window-functions

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

如何使用 postgres 触发会计软件中的余额计算

继我之前回答的问题之后,我想知道如何使用 postgres 触发器进行类似的余额计算。

如何使用 postgres 窗口函数计算会计软件中的余额

ID   Date         In       Out    Balance
1    1/1       100.00    0.00   100.00
2    2/1        10.00    0.00   110.00
3    3/1         0.00   70.00    40.00
4    5/1         5.00    0.00    45.00
5    6/1         0.00   60.00   -15.00 
Run Code Online (Sandbox Code Playgroud)

现在我需要一个“触发器”来给出以下结果:

ID   Date         In       Out    Balance
1    1/1        100.00    0.00   100.00
2    2/1         10.00    0.00   110.00
3    3/1          0.00   70.00    40.00
6    4/1         20.00    0.00    60.00  <--- inserted new row
4    5/1          5.00    0.00    65.00
5    6/1          0.00   60.00     5.00
Run Code Online (Sandbox Code Playgroud)

如何在 postgres 中创建触发器来更新“连续”行的余额(不更新旧行)?

sql postgresql triggers database-design

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

如何使用 drf_yasg 对 swagger API 端点(基于函数的视图)进行分组 - Django

我正在从 Django 1.11 --> 3.1.5 进行一些迁移工作

之前使用“rest_framework_swagger”,我可以通过 url.py 中的这个来完成 swagger api 分组

url(r'^api/v9/test_token1$', 
    api.test_token, 
    name='test_token'),

url(r'^api/v9/test_token2$', 
    api.test_token, 
    name='test_token'),
Run Code Online (Sandbox Code Playgroud)

并得到这个(注意它是 v9 组)

在此输入图像描述

但是,我在 Django 3.1.5 url.py 上尝试过使用“drf_yasg”

path('/v2/token_api1', token_api1, name='token_api1'),
path('/v2/token_api2', token_api2, name='token_api2'),
Run Code Online (Sandbox Code Playgroud)

我的 api 定义(请注意我正在使用@api_view)

token = openapi.Parameter('token', openapi.IN_FORM, type=openapi.TYPE_STRING, required=True)
@swagger_auto_schema(
    method="post",
    manual_parameters=[token],
    operation_id="token_api1"
)
@api_view(['POST'])
# this is optional and insures that the view gets formdata
@parser_classes([FormParser])
def token_api1(request):
    token = request.POST['token']    
    return Response("success test_api:" + token, status=status.HTTP_200_OK)


token = openapi.Parameter('token', openapi.IN_FORM, type=openapi.TYPE_STRING, required=True)
@swagger_auto_schema(
    method="post",
    manual_parameters=[token],
    operation_id="token_api2" …
Run Code Online (Sandbox Code Playgroud)

django swagger django-rest-framework drf-yasg redoc

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