我正在尝试为带分页的列表创建 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) 从 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)
我应该如何解决这个警告?谢谢
我试图使用文本输入(而不是数字)来对超过0的条件进行数字验证.所以,它不应该接受输入-1,-2,0.但是1,100,2000,4000000 ..可能做的对它的限制.
是否有使用HTML5验证做类似的模式?(不是js/jq只是HTML5验证)
这是我尝试但完全不满足我的要求:
<input id="quantity" name="quantity" type="number" min="1" max="100000" required />
Run Code Online (Sandbox Code Playgroud)
<input id="quantity" name="quantity" type="text" pattern = "[0-9]{1,5}" required />
Run Code Online (Sandbox Code Playgroud) 我有一个像这样的 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()?有没有办法做到这一点 ?
我已将环境从离子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) 我遇到了同样的问题,但我正在使用Postgres.
有一个包含以下数据的表:
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窗口函数完成?
谢谢.
继我之前回答的问题之后,我想知道如何使用 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 中创建触发器来更新“连续”行的余额(不更新旧行)?
我正在从 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 ×3
sql ×3
database ×2
postgresql ×2
python ×2
accounting ×1
django-3 ×1
django-urls ×1
drf-yasg ×1
html ×1
html5 ×1
ionic3 ×1
ios ×1
json ×1
pagination ×1
parameters ×1
redoc ×1
swagger ×1
triggers ×1