day46 crm开发之积分管理
学生视图增加一列积分
def display_score(self, obj=None, is_header=None, *args, **kwargs):
if is_header:
return '积分'
'web_scorerecord_list'
record_url = reverse('stark:web_scorerecord_list', kwargs={'student_id': obj.pk})
return mark_safe('<a target="_blank" href="%s">%s</a>' % (record_url, obj.score))
list_display = ['customer', 'qq', 'mobile', 'emergency_contract', get_m2m_text('已报班级', 'class_list'),
display_score,get_choice_text('状态', 'student_status')]
web应用新增积分记录视图
# -*- encoding: utf-8 -*-
"""
@File : score_record.py
@Time : 2022/3/13 12:44
@Author : simon
@Email : 294168604@qq.com
@Software: PyCharm
"""
from django.conf.urls import url
from stark.service.v1 import StarkHandler, StarkModelForm
from web import models
class ScoreModelForm(StarkModelForm):
class Meta:
model = models.ScoreRecord
fields = ['content', 'score']
class ScoreHandler(StarkHandler):
list_display = ['content', 'score', 'user']
model_form_class = ScoreModelForm
def get_urls(self):
patterns = [
url(r'^list/(?P<student_id>\d+)/$', self.wrapper(self.changelist_view), name=self.get_list_url_name),
url(r'^add/(?P<student_id>\d+)/$', self.wrapper(self.add_view), name=self.get_add_url_name),
]
patterns.extend(self.extra_urls())
return patterns
def get_list_display(self):
value = []
if self.list_display:
value.extend(self.list_display)
return value
def get_queryset(self, request, *args, **kwargs):
student_id = kwargs.get('student_id')
return self.model_class.objects.filter(student_id=student_id)
def save(self, request, form, is_update, *args, **kwargs):
student_id = kwargs.get('student_id')
current_user_id = request.session['user_info']['id']
form.instance.student_id = student_id
form.instance.user_id = current_user_id
form.save()
score = form.instance.score
if score > 0:
form.instance.student.score += abs(score)
else:
form.instance.student.score -= abs(score)
form.instance.student.save()
效果展示
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具