<class ‘singin.admin.EmployeeAdmin‘>: (admin.E012) There are duplicate field(s) in ‘fieldsets[0][1]‘

本文探讨了在 Django 项目中遇到的 admin.py 注册错误问题。主要关注于字段重复导致的问题,并提供了一些排查和解决思路。

这个是django项目在admin.py里面注册的时候出错的

在这里插入图片描述

这个里面的字段不可以重复,好好检查一下

<view class="sing-in" style="margin-top: 60rpx;"> <view class="padding-top-sm"> <u-image src="https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/singIn2.svg" height="84" width="230" border-radius="10rpx"></u-image> </view> <view class="flex align-center justify-between padding-lr"> <view class="text-sm text-gray"> 断签以及每周一会重置连续签到天数 </view> <view class="text-white text-sm text-bold flex align-center justify-center" @click="handleSignClick()" style="background-color: #E88A3D;height: 60rpx;width: 214rpx; border-radius: 30rpx;"> 点我签到领积分 </view> </view> <view class="flex padding-lr padding-top-lg"> <view class="item" v-for="item in signList" style="height: 155rpx;width: 84rpx; margin-left: 8rpx;"> <view class="" style="background-color: #FDF8EC; height: 102rpx;"> <view class="flex justify-center align-center" style="padding-top: 12rpx;padding-bottom: 12rpx;"> <u-image :src="item.signed ? grayIcon :item.img" height="48" width="48" border-radius="10rpx"></u-image> </view> <view class="text-white flex justify-center align-center" :style="{ color: item.signed ? '#BFBFBF' : item.pointColor }" style="height: 32rpx; width: 60rpx;background-color: #E88A3D; border-radius: 16rpx; margin: 0 auto; font-size: 24rpx;"> +{{item.points}} </view> </view> <view class="padding-top-sm text-xs text-center" :style="{ color: item.signed ? '#BFBFBF' : '#333' }"> {{item.dayText}} </view> <view v-if="item.signed" class="signed-mask"></view> </view> </view> </view> <script> export default { data() { return { navBarHeight: "", grayIcon: 'https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/grey.svg', signList: [{ img: 'https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/gold.svg', bgColor: '#FDF8EC', pointColor: '#fff', points: 20, dayText: '第一天', signed: true // 是否已签到 }, { img: 'https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/gold.svg', bgColor: '#F0F9FF', pointColor: '#fff', points: 30, dayText: '第二天', signed: false // 是否已签到 }, { img: 'https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/gold.svg', bgColor: '#F6FFED', pointColor: '#fff', points: 40, dayText: '第三天', signed: false // 是否已签到 }, { img: 'https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/gold.svg', bgColor: '#FFF7E6', pointColor: '#fff', points: 50, dayText: '第四天', signed: false // 是否已签到 }, { img: 'https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/gold.svg', bgColor: '#F9F0FF', pointColor: '#fff', points: 60, dayText: '第五天', signed: false // 是否已签到 }, { img: 'https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/gold.svg', bgColor: '#E6F7FF', pointColor: '#fff', points: 70, dayText: '第六天', signed: false // 是否已签到 }, { img: 'https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/gold.svg', bgColor: '#FFF2E8', pointColor: '#fff', points: 100, dayText: '第七天', signed: false // 是否已签到 } ] }; }, methods: { goremark() { uni.navigateTo({ url: '/pages/my/myRemark/myRemark' }) }, goUserLnfo() { uni.navigateTo({ url: '/pages/my/userInfo/userInfo' }) }, goService() { uni.navigateTo({ url: '/pages/my/service/service' }) }, goBusiness() { uni.navigateTo({ url: '/pages/my/business/business' }) }, goWe() { uni.navigateTo({ url: '/pages/my/we/we' }) }, goMycoupon() { uni.navigateTo({ url: '/pages/my/myCoupon/myCoupon' }) }, goAddress() { uni.navigateTo({ url: '/pages/my/address/index' }) }, goMember() { uni.navigateTo({ url: '/pages/my/member/member' }) }, goMyOrder() { uni.navigateTo({ url: '/pages/my/myOrder/myOrder' }) }, goCollect() { uni.navigateTo({ url: '/pages/my/collect/collect' }) }, goAgreement() { uni.navigateTo({ url: '/pages/my/agreement/agreement' }) }, handleSignClick() { // 查找第一个未签到的项目 const nextItemIndex = this.signList.findIndex(item => !item.signed); if (nextItemIndex === -1) { // 所有都签过了 uni.showToast({ title: '本周已全部签到', icon: 'none' }); return; } // 执行签到 this.sign(nextItemIndex); }, sign(index) { const item = this.signList[index]; // 防止重复签到 if (item.signed) { uni.showToast({ title: '已签到', icon: 'none' }); return; } // 使用 $set 确保响应式更新 this.$set(this.signList[index], 'signed', true); uni.showToast({ title: `签到成功!获得 ${item.points} 积分`, icon: 'success' }); // 可在此发送请求保存到后端 // this.submitSignIn(index); // this.$set(this.signList[index], 'signed', false); } }, onLoad() { this.signList.forEach((item, i) => { this.$set(this.signList[i], 'signed', false); }); this.$nextTick(() => { const statusBarHeight = uni.getSystemInfoSync().statusBarHeight const menuButtonInfo = uni.getMenuButtonBoundingClientRect() this.navBarHeight = menuButtonInfo.bottom + menuButtonInfo.top - statusBarHeight }) } } </script> 帮我优化签到的地方
最新发布
11-01
grayIcon: 'https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/grey.svg', signList: [{ img: 'https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/gold.svg', bgColor: '#FDF8EC', pointColor: '#fff', points: 20, dayText: '第一天', signed: false // 是否已签到 }, { img: 'https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/gold.svg', bgColor: '#F0F9FF', pointColor: '#fff', points: 30, dayText: '第二天', signed: false // 是否已签到 }, { img: 'https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/gold.svg', bgColor: '#F6FFED', pointColor: '#fff', points: 40, dayText: '第三天', signed: false // 是否已签到 }, { img: 'https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/gold.svg', bgColor: '#FFF7E6', pointColor: '#fff', points: 50, dayText: '第四天', signed: false // 是否已签到 }, { img: 'https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/gold.svg', bgColor: '#F9F0FF', pointColor: '#fff', points: 60, dayText: '第五天', signed: false // 是否已签到 }, { img: 'https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/gold.svg', bgColor: '#E6F7FF', pointColor: '#fff', points: 70, dayText: '第六天', signed: false // 是否已签到 }, { img: 'https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/gold.svg', bgColor: '#FFF2E8', pointColor: '#fff', points: 100, dayText: '第七天', signed: false // 是否已签到 } ] }; }, sign(index) { // 防止重复签到 if (this.signList[index].signed) { uni.showToast({ title: '已签到', icon: 'none' }) return } // 更新为已签到状态 this.$set(this.signList[index], 'signed', true) // 可选:播放签到成功动画或提示 uni.showToast({ title: '签到成功', icon: 'success' }) // 可以在这里发送请求到后端保存签到记录 } <view class="sing-in" style="margin-top: 60rpx;"> <view class="padding-top-sm"> <u-image src="https://env-00jxta4kb22c.normal.cloudstatic.cn/1/static/my/singIn2.svg" height="84" width="230" border-radius="10rpx"></u-image> </view> <view class="flex align-center justify-between padding-lr"> <view class="text-sm text-gray"> 断签以及每周一会重置连续签到天数 </view> <view class="text-white text-sm text-bold flex align-center justify-center" @click="sign(index)" style="background-color: #E88A3D;height: 60rpx;width: 214rpx; border-radius: 30rpx;"> 点我签到领积分 </view> </view> <view class="flex padding-lr padding-top-lg"> <view class="item" v-for="item in signList" style="height: 155rpx;width: 84rpx; margin-left: 8rpx;"> <view class="" style="background-color: #FDF8EC; height: 102rpx;"> <view class="flex justify-center align-center" style="padding-top: 12rpx;padding-bottom: 12rpx;"> <u-image :src="item.img" height="48" width="48" border-radius="10rpx"></u-image> </view> <view class="text-white flex justify-center align-center" :style="{ color: item.signed ? '#BFBFBF' : item.pointColor }" style="height: 32rpx; width: 60rpx;background-color: #E88A3D; border-radius: 16rpx; margin: 0 auto; font-size: 24rpx;"> +{{item.points}} </view> </view> <view class="padding-top-sm text-xs text-center" :style="{ color: item.signed ? '#BFBFBF' : '#333' }"> {{item.dayText}} </view> <view v-if="item.signed" class="signed-mask"></view> </view> </view> </view> 点击签到没有反应
11-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一写代码就开心

你的打赏将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值