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()
效果展示




浙公网安备 33010602011771号