fix conflict
This commit is contained in:
commit
63017b3c4f
Binary file not shown.
|
@ -1,6 +1,6 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
||||||
title: '辐射学堂',
|
title: '安建环培训考试平台',
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {boolean} true | false
|
* @type {boolean} true | false
|
||||||
|
@ -12,5 +12,5 @@ module.exports = {
|
||||||
* @type {boolean} true | false
|
* @type {boolean} true | false
|
||||||
* @description Whether show the logo in sidebar
|
* @description Whether show the logo in sidebar
|
||||||
*/
|
*/
|
||||||
sidebarLogo: true
|
sidebarLogo: false
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="创建人">
|
<el-table-column label="创建人">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.create_admin_name }}</span>
|
<span>{{ scope.row.create_admin_username }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center" label="操作" fixed="right">
|
<el-table-column align="center" label="操作" fixed="right">
|
||||||
|
|
|
@ -70,9 +70,9 @@ App({
|
||||||
globalData: {
|
globalData: {
|
||||||
userInfo: {},
|
userInfo: {},
|
||||||
userinfo: {}, // 服务器传回的消费者信息
|
userinfo: {}, // 服务器传回的消费者信息
|
||||||
host: 'https://apitest.ahctc.cn',
|
//host: 'https://apitest.ahctc.cn',
|
||||||
mediahost: 'https://apitest.ahctc.cn',
|
mediahost: 'https://apitest.ahctc.cn',
|
||||||
//host: 'http://127.0.0.1:8000',
|
host: 'http://127.0.0.1:8000',
|
||||||
//mediahost: 'http://127.0.0.1:8000',
|
//mediahost: 'http://127.0.0.1:8000',
|
||||||
token : '',
|
token : '',
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
// pages/admin/exam/detail.js
|
// pages/admin/exam/detail.js
|
||||||
|
const api = require("../../../utils/request.js");
|
||||||
Page({
|
Page({
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 页面的初始数据
|
* 页面的初始数据
|
||||||
*/
|
*/
|
||||||
data: {
|
data: {
|
||||||
|
exam:{},
|
||||||
|
tests:[]
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -13,10 +15,25 @@ Page({
|
||||||
*/
|
*/
|
||||||
onLoad: function (options) {
|
onLoad: function (options) {
|
||||||
if(options.id){
|
if(options.id){
|
||||||
console.log(options.id)
|
let id = options.id
|
||||||
|
api.requesta(`/examtest/exam/${id}/`, 'GET').then(res=>{
|
||||||
|
this.setData({
|
||||||
|
exam:res.data
|
||||||
|
})
|
||||||
|
})
|
||||||
|
api.requesta('/examtest/examtest/', 'GET', {exam:id, pageoff:true}).then(res=>{
|
||||||
|
this.setData({
|
||||||
|
tests:res.data
|
||||||
|
})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
issue: function(){
|
||||||
|
wx.showLoading({
|
||||||
|
title: '正在生成...',
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* 生命周期函数--监听页面初次渲染完成
|
* 生命周期函数--监听页面初次渲染完成
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,2 +1,64 @@
|
||||||
<!--pages/admin/exam/detail.wxml-->
|
<view class="page">
|
||||||
<text>pages/admin/exam/detail.wxml</text>
|
<view class="page__bd">
|
||||||
|
<view style="height:4px"></view>
|
||||||
|
<view class="weui-panel weui-panel_access" style="margin:8px">
|
||||||
|
<view class="weui-panel__hd">{{exam.name}}</view>
|
||||||
|
<view class="weui-panel__bd">
|
||||||
|
<view class="weui-media-box weui-media-box_text">
|
||||||
|
<!-- <h4 class="weui-media-box__title">标题一</h4> -->
|
||||||
|
<view class="weui-media-box__desc">
|
||||||
|
工作类别:{{exam.workscope_name}}
|
||||||
|
</view>
|
||||||
|
<view class="weui-media-box__desc">
|
||||||
|
考试地点:{{exam.place}}
|
||||||
|
</view>
|
||||||
|
<view class="weui-media-box__desc">
|
||||||
|
开关时间:{{exam.opentime}}-{{exam.closetime}}
|
||||||
|
</view>
|
||||||
|
<view class="weui-media-box__desc">
|
||||||
|
监考人:{{exam.proctor_name}}-{{exam.proctor_phone}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="weui-panel weui-panel_access">
|
||||||
|
<view class="weui-panel__hd">共{{tests.length}}名人员参加考试</view>
|
||||||
|
<view class="weui-panel__bd">
|
||||||
|
<view class="weui-media-box weui-media-box_text" wx:for="{{tests}}" wx:key="unique">
|
||||||
|
<h4 class="weui-media-box__title">
|
||||||
|
<text style="color:green;" wx:if="{{item.is_pass}}">通过</text>
|
||||||
|
<text style="color:red;" wx:else>未过</text>
|
||||||
|
{{item.consumer_detail.name}}
|
||||||
|
</h4>
|
||||||
|
<view class="weui-media-box__desc">
|
||||||
|
{{item.consumer_detail.company_name}} {{item.consumer_detail.deptname}}
|
||||||
|
</view>
|
||||||
|
<view class="weui-media-box__desc">
|
||||||
|
身份证号:{{item.consumer_detail.ID_number}}
|
||||||
|
</view>
|
||||||
|
<view class="weui-media-box__desc">
|
||||||
|
开始答题:{{item.start_time}}-耗时:{{item.took_format}}
|
||||||
|
</view>
|
||||||
|
<view class="weui-media-box__desc">
|
||||||
|
得分:{{item.score}}
|
||||||
|
</view>
|
||||||
|
<view style="text-align:right;padding-right:8rpx">
|
||||||
|
<button type="primary" size="mini" bindtap="issue">颁发证书</button>
|
||||||
|
<button type="default" size="mini" bindtap="unbindmp" style="margin-left:4px">查看证书</button>
|
||||||
|
<button type="default" size="mini" bindtap="logout" style="margin-left:4px">答卷详情</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view class="weui-loadmore weui-loadmore_line" wx:if="{{isLoadedAll}}">
|
||||||
|
<text class="weui-loadmore__tips">到底了</text>
|
||||||
|
</view>
|
||||||
|
<!-- <view class="weui-panel__ft">
|
||||||
|
<a class="weui-cell weui-cell_active weui-cell_access weui-cell_link">
|
||||||
|
<view class="weui-cell__bd">查看更多</view>
|
||||||
|
<text class="weui-cell__ft"></text>
|
||||||
|
</a>
|
||||||
|
</view> -->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
|
@ -1 +1,4 @@
|
||||||
/* pages/admin/exam/detail.wxss */
|
/* pages/admin/exam/detail.wxss */
|
||||||
|
.weui-media-box {
|
||||||
|
padding: 12px;
|
||||||
|
}
|
|
@ -1,20 +1,49 @@
|
||||||
// pages/admin/exam/index.js
|
// pages/admin/exam/index.js
|
||||||
|
const api = require("../../../utils/request.js");
|
||||||
Page({
|
Page({
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 页面的初始数据
|
* 页面的初始数据
|
||||||
*/
|
*/
|
||||||
data: {
|
data: {
|
||||||
|
page:1,
|
||||||
|
isLoadedAll:false,
|
||||||
|
count:0,
|
||||||
|
results:[]
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生命周期函数--监听页面加载
|
* 生命周期函数--监听页面加载
|
||||||
*/
|
*/
|
||||||
onLoad: function (options) {
|
onLoad: function (options) {
|
||||||
|
this.getList(1)
|
||||||
|
},
|
||||||
|
getList: function(page) {
|
||||||
|
wx.showLoading({
|
||||||
|
title: '正在加载...',
|
||||||
|
})
|
||||||
|
api.requesta('/examtest/exam/', 'GET', {page:page}).then(res=>{
|
||||||
|
wx.hideLoading()
|
||||||
|
let results = this.data.results
|
||||||
|
let isLoadedAll = false
|
||||||
|
if(res.data.results){
|
||||||
|
if(page==1){results=res.data.results}else{
|
||||||
|
results = results.concat(res.data.results)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!res.data.next){
|
||||||
|
isLoadedAll = true
|
||||||
|
}
|
||||||
|
this.setData({
|
||||||
|
count:res.data.count,
|
||||||
|
results:results,
|
||||||
|
page:page,
|
||||||
|
isLoadedAll: isLoadedAll
|
||||||
|
})
|
||||||
|
}).catch(
|
||||||
|
wx.hideLoading()
|
||||||
|
)
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生命周期函数--监听页面初次渲染完成
|
* 生命周期函数--监听页面初次渲染完成
|
||||||
*/
|
*/
|
||||||
|
@ -47,14 +76,17 @@ Page({
|
||||||
* 页面相关事件处理函数--监听用户下拉动作
|
* 页面相关事件处理函数--监听用户下拉动作
|
||||||
*/
|
*/
|
||||||
onPullDownRefresh: function () {
|
onPullDownRefresh: function () {
|
||||||
|
this.getList(1)
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 页面上拉触底事件的处理函数
|
* 页面上拉触底事件的处理函数
|
||||||
*/
|
*/
|
||||||
onReachBottom: function () {
|
onReachBottom: function () {
|
||||||
|
if(!this.data.isLoadedAll){
|
||||||
|
this.data.page=this.data.page+1
|
||||||
|
this.getList(this.data.page)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
{
|
{
|
||||||
"usingComponents": {}
|
"usingComponents": {},
|
||||||
|
"enablePullDownRefresh":true
|
||||||
}
|
}
|
|
@ -1,2 +1,31 @@
|
||||||
<!--pages/admin/exam/index.wxml-->
|
<view class="page__bd">
|
||||||
<text>pages/admin/exam/index.wxml</text>
|
<view class="weui-panel weui-panel_access">
|
||||||
|
<view class="weui-panel__hd">已发布的考试,共{{count}}场</view>
|
||||||
|
<view class="weui-panel__bd">
|
||||||
|
<navigator class="weui-media-box weui-media-box_text" wx:for="{{results}}" wx:key="unique" url="detail?id={{item.id}}">
|
||||||
|
<h4 class="weui-media-box__title">
|
||||||
|
<text style="color:blue;">{{item.workscope_name}}</text>
|
||||||
|
{{item.name}}
|
||||||
|
</h4>
|
||||||
|
<view class="weui-media-box__desc">
|
||||||
|
考试地点:{{item.place}}
|
||||||
|
</view>
|
||||||
|
<view class="weui-media-box__desc">
|
||||||
|
开关时间:{{item.opentime}}-{{item.closetime}}
|
||||||
|
</view>
|
||||||
|
<view class="weui-media-box__desc">
|
||||||
|
监考人:{{item.proctor_name}}-{{item.proctor_phone}}
|
||||||
|
</view>
|
||||||
|
</navigator>
|
||||||
|
</view>
|
||||||
|
<view class="weui-loadmore weui-loadmore_line" wx:if="{{isLoadedAll}}">
|
||||||
|
<text class="weui-loadmore__tips">到底了</text>
|
||||||
|
</view>
|
||||||
|
<!-- <view class="weui-panel__ft">
|
||||||
|
<a class="weui-cell weui-cell_active weui-cell_access weui-cell_link">
|
||||||
|
<view class="weui-cell__bd">查看更多</view>
|
||||||
|
<text class="weui-cell__ft"></text>
|
||||||
|
</a>
|
||||||
|
</view> -->
|
||||||
|
</view>
|
||||||
|
</view>
|
|
@ -28,13 +28,21 @@ Page({
|
||||||
// 发送 res.code 到后台换取 openId, sessionKey, unionId
|
// 发送 res.code 到后台换取 openId, sessionKey, unionId
|
||||||
api.requesta('/rbac/user/bindmp/','POST', {code:res.code}).then(res=>{
|
api.requesta('/rbac/user/bindmp/','POST', {code:res.code}).then(res=>{
|
||||||
getApp().globalData.admininfo.mpopenid = res.data.mpopenid
|
getApp().globalData.admininfo.mpopenid = res.data.mpopenid
|
||||||
wx.redirectTo({
|
this.setData({
|
||||||
url: '/pages/admin/index',
|
'admininfo.mpopenid':res.data.mpopenid
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
unbindmp: function(){
|
||||||
|
api.requesta('/rbac/user/unbindmp/','POST').then(res=>{
|
||||||
|
getApp().globalData.admininfo.mpopenid = null
|
||||||
|
this.setData({
|
||||||
|
'admininfo.mpopenid':null
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* 生命周期函数--监听页面初次渲染完成
|
* 生命周期函数--监听页面初次渲染完成
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
</view>
|
</view>
|
||||||
<view style="text-align:right;padding-right:8rpx">
|
<view style="text-align:right;padding-right:8rpx">
|
||||||
<button type="primary" size="mini" bindtap="bindmp" wx:if="{{!admininfo.mpopenid}}">绑定微信</button>
|
<button type="primary" size="mini" bindtap="bindmp" wx:if="{{!admininfo.mpopenid}}">绑定微信</button>
|
||||||
|
<button type="default" size="mini" bindtap="unbindmp" wx:else>解绑</button>
|
||||||
<button type="warn" size="mini" bindtap="logout" style="margin-left:4rpx">退出</button>
|
<button type="warn" size="mini" bindtap="logout" style="margin-left:4rpx">退出</button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
</view>
|
</view>
|
||||||
<view class="weui-media-box__bd weui-media-box__bd_in-appmsg">
|
<view class="weui-media-box__bd weui-media-box__bd_in-appmsg">
|
||||||
<view class="weui-media-box__title" wx:if="{{userinfo && userinfo.username}}">
|
<view class="weui-media-box__title" wx:if="{{userinfo && userinfo.username}}">
|
||||||
<span>账号:</span>
|
<span>{{userinfo.role_name}}:</span>
|
||||||
<span style="font-weight:bold;">{{userinfo.username}}</span>
|
<span style="font-weight:bold;">{{userinfo.username}}</span>
|
||||||
</view>
|
</view>
|
||||||
<view class="weui-media-box__title" wx:else>账号:
|
<view class="weui-media-box__title" wx:else>账号:
|
||||||
|
|
|
@ -92,16 +92,31 @@ Page({
|
||||||
|
|
||||||
chooseWork: function (e) {
|
chooseWork: function (e) {
|
||||||
let work = e.currentTarget.dataset
|
let work = e.currentTarget.dataset
|
||||||
api.request(`/examtest/workscope/${work.id}/chose/`, 'GET').then(res => {
|
wx.showModal({
|
||||||
//选择工作类别
|
title: '提示',
|
||||||
// that.setData({
|
content: '确定修改工作类别吗?',
|
||||||
// workData:res.data
|
confirmText: '确定',
|
||||||
// })
|
cancelText: '取消',
|
||||||
getApp().globalData.userinfo.workscope = res.data.workscope
|
success: function (res) {
|
||||||
getApp().globalData.userinfo.workscope_name = res.data.workscope_name
|
if (res.confirm) {
|
||||||
wx.navigateBack({
|
api.request(`/examtest/workscope/${work.id}/chose/`, 'GET').then(res => {
|
||||||
})
|
//选择工作类别
|
||||||
|
// that.setData({
|
||||||
|
// workData:res.data
|
||||||
|
// })
|
||||||
|
wx.showToast({
|
||||||
|
title: '成功',
|
||||||
|
icon:'none'
|
||||||
|
})
|
||||||
|
getApp().globalData.userinfo.workscope = res.data.workscope
|
||||||
|
getApp().globalData.userinfo.workscope_name = res.data.workscope_name
|
||||||
|
wx.navigateBack({
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
//wx.setStorageSync('nowWork', work)
|
//wx.setStorageSync('nowWork', work)
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<view class="weui-media-box__bd">
|
<view class="weui-media-box__bd">
|
||||||
<h4 class="weui-media-box__title">{{item.name}}</h4>
|
<h4 class="weui-media-box__title">{{item.name}}</h4>
|
||||||
<view class="weui-media-box__desc">
|
<view class="weui-media-box__desc">
|
||||||
<span style="color:blue;border:1rpx solid blue;font-size:12px" wx:if="{{item.can_exam}}">公开可选</span>
|
<span style="color:blue;border:1rpx solid blue;font-size:10px" wx:if="{{item.can_exam}}">公开可选</span>
|
||||||
该类别下包含<span style="color:darkblue">{{item.questioncat.length}}</span>个科目
|
该类别下包含<span style="color:darkblue">{{item.questioncat.length}}</span>个科目
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
@ -21,15 +21,13 @@
|
||||||
"checkSiteMap": true,
|
"checkSiteMap": true,
|
||||||
"uploadWithSourceMap": true,
|
"uploadWithSourceMap": true,
|
||||||
"compileHotReLoad": false,
|
"compileHotReLoad": false,
|
||||||
"useMultiFrameRuntime": true,
|
"useMultiFrameRuntime": false,
|
||||||
"useApiHook": true,
|
"useApiHook": true,
|
||||||
"useApiHostProcess": false,
|
|
||||||
"babelSetting": {
|
"babelSetting": {
|
||||||
"ignore": [],
|
"ignore": [],
|
||||||
"disablePlugins": [],
|
"disablePlugins": [],
|
||||||
"outputPath": ""
|
"outputPath": ""
|
||||||
},
|
},
|
||||||
"enableEngineNative": false,
|
|
||||||
"bundle": false,
|
"bundle": false,
|
||||||
"useIsolateContext": true,
|
"useIsolateContext": true,
|
||||||
"useCompilerModule": true,
|
"useCompilerModule": true,
|
||||||
|
|
|
@ -110,4 +110,5 @@ class Candidate(CommonModel):
|
||||||
report_number = models.TextField('报告单号', null=True, blank=True)
|
report_number = models.TextField('报告单号', null=True, blank=True)
|
||||||
issue_date = models.DateField('发证日期', null=True, blank=True)
|
issue_date = models.DateField('发证日期', null=True, blank=True)
|
||||||
start_date = models.DateField('有效期始', null=True, blank=True)
|
start_date = models.DateField('有效期始', null=True, blank=True)
|
||||||
end_date = models.DateField('有效期止', null=True, blank=True)
|
end_date = models.DateField('有效期止', null=True, blank=True)
|
||||||
|
examtest = models.ForeignKey(to='examtest.examtest', verbose_name='关联考试', null=True, blank=True, on_delete=models.CASCADE)
|
||||||
|
|
|
@ -175,6 +175,12 @@ class ExamListSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Exam
|
model = Exam
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def setup_eager_loading(queryset):
|
||||||
|
""" Perform necessary eager loading of data. """
|
||||||
|
queryset = queryset.prefetch_related('workscope','create_admin')
|
||||||
|
return queryset
|
||||||
|
|
||||||
class ExamSimpleSerializer(serializers.ModelSerializer):
|
class ExamSimpleSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -186,9 +192,10 @@ class ConsumerSimpleSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Consumer
|
model = Consumer
|
||||||
fields = ['id', 'name', 'ID_number1', 'comanyname', 'deptname', 'username']
|
fields = ['id', 'name', 'ID_number1', 'comanyname', 'deptname', 'username']
|
||||||
|
|
||||||
class ExamTestDetailSerializer(serializers.ModelSerializer):
|
class ExamTestDetailSerializer(serializers.ModelSerializer):
|
||||||
"""
|
"""
|
||||||
考试详情序列化(导出用)
|
考试详情序列化(导出用);目前是正式考试,用户详情从consumer_detail获取
|
||||||
"""
|
"""
|
||||||
workscope_name = serializers.StringRelatedField(source='workscope', read_only=True)
|
workscope_name = serializers.StringRelatedField(source='workscope', read_only=True)
|
||||||
paper_name = serializers.StringRelatedField(source='paper', )
|
paper_name = serializers.StringRelatedField(source='paper', )
|
||||||
|
|
|
@ -33,6 +33,7 @@ from .serializers import (
|
||||||
WorkScopeSerializer, ExamCreateUpdateSerializer, ExamListSerializer, ExamTestDetailSerializer)
|
WorkScopeSerializer, ExamCreateUpdateSerializer, ExamListSerializer, ExamTestDetailSerializer)
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
|
from utils.pagination import PageOrNot
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
||||||
class ExamViewSet(ModelViewSet):
|
class ExamViewSet(ModelViewSet):
|
||||||
|
@ -375,7 +376,7 @@ class TestRuleViewSet(ModelViewSet):
|
||||||
self.permission_classes = []
|
self.permission_classes = []
|
||||||
return [permission() for permission in self.permission_classes]
|
return [permission() for permission in self.permission_classes]
|
||||||
|
|
||||||
class ExamTestViewSet(ModelViewSet):
|
class ExamTestViewSet(PageOrNot, ModelViewSet):
|
||||||
"""
|
"""
|
||||||
考试记录列表和详情
|
考试记录列表和详情
|
||||||
"""
|
"""
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -179,5 +179,15 @@ class UserViewSet(PageOrNot, ModelViewSet):
|
||||||
user.mpopenid = openid
|
user.mpopenid = openid
|
||||||
user.save()
|
user.save()
|
||||||
return Response({'mpopenid':openid})
|
return Response({'mpopenid':openid})
|
||||||
|
|
||||||
|
@action(methods=['post'], detail=False, permission_classes=[IsAuthenticated])
|
||||||
|
def unbindmp(self, request, pk=None):
|
||||||
|
"""
|
||||||
|
解绑微信
|
||||||
|
"""
|
||||||
|
user = request.user
|
||||||
|
user.mpopenid = None
|
||||||
|
user.save()
|
||||||
|
return Response()
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -9,8 +9,8 @@ class PageOrNot:
|
||||||
def paginate_queryset(self, queryset):
|
def paginate_queryset(self, queryset):
|
||||||
if (self.paginator is None):
|
if (self.paginator is None):
|
||||||
return None
|
return None
|
||||||
elif self.request.query_params.get('pageoff', None) and self.get_queryset().count()<500:
|
elif self.request.query_params.get('pageoff', None) and queryset.count()<500:
|
||||||
return None
|
return None
|
||||||
elif self.request.query_params.get('pageoff', None) and self.get_queryset().count()>=500:
|
elif self.request.query_params.get('pageoff', None) and queryset.count()>=500:
|
||||||
return ParseError('单次请求数据量大,请求中止')
|
return ParseError('单次请求数据量大,请求中止')
|
||||||
return self.paginator.paginate_queryset(queryset, self.request, view=self)
|
return self.paginator.paginate_queryset(queryset, self.request, view=self)
|
Loading…
Reference in New Issue