栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Django的考勤系统

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Django的考勤系统

在完成dirkgroten之后,我得以解决问题,回答允许在head_of_department(在hod中登录)下呈现雇员列表并标记相应的出勤率。

楷模

attendance_choices = (    ('absent', 'Absent'),    ('present', 'Present'))class Head_of_department(models.Model):    first_name = models.CharField(max_length=200)    last_name = models.CharField(max_length=200)    email = models.CharField(max_length=30)    def __str__(self):        return self.first_nameclass Employee(models.Model):    first_name = models.CharField(max_length=200, unique=True)    last_name = models.CharField(max_length=200, unique=True)    head_of_department = models.ForeignKey('Head_of_department', on_delete=models.SET_NULL, blank=True, null=True)    email = models.EmailField(max_length=100)     def __str__(self):        return self.first_name + ' ' + self.last_nameclass Attendance(models.Model):    head_of_department = models.ForeignKey('Head_of_department', on_delete=models.SET_NULL, blank=True, null=True)    employee = models.ForeignKey('Employee', on_delete=models.CASCADE, )    attendance = models.CharField(max_length=8, choices=attendance_choices, blank=True)

观看次数

class Attendancecreate(CreateView):    model = Attendance    form_class = Attendanceform    success_url = '/dashboard/'    def get_context_data(self,** kwargs):        context = super(Attendancecreate, self).get_context_data(**kwargs)        context['formset'] = AttendanceFormset(queryset=Attendance.objects.none(), instance=Head_of_department.objects.get(email=self.request.user.email), initial=[{'employee': employee} for employee in self.get_initial()['employee']])        return context    def get_initial(self):        email = self.request.user.email        head_of_department = Head_of_department.objects.get(email=email)        initial = super(Attendancecreate , self).get_initial()        initial['employee'] = Employee.objects.filter(head_of_department=head_of_department)        return initial    def post(self, request, *args, **kwargs,):        formset = AttendanceFormset(request.POST,queryset=Attendance.objects.none(), instance=Head_of_department.objects.get(email=self.request.user.email), initial=[{'employee': employee} for employee in self.get_initial()['employee']])        if formset.is_valid(): return self.form_valid(formset)    def form_valid(self,formset):        instances = formset.save(commit=False)        for instance in instances: instance.head_of_department = get_object_or_404(Head_of_department, email=self.request.user.email) instance.save()        return HttpResponseRedirect('/dashboard/')

形式

class Attendanceform(ModelForm):    class meta:        model = Attendance        widgets = {'employee' : HiddenInput}        fields = ('employee','attendance','hod')AttendanceFormset = inlineformset_factory(Head_of_department,Attendance,form=Attendanceform,fields=('attendance','employee'))

模板

{% csrf_token %}{{ formset.management_form }}   {% for form in formset %}      {{ form.employee.initial }} {{ form.employee}}  {{ form.attendance }}<br><br>   {% endfor %}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/429180.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号