我正在构建一个小型 django 应用程序来管理商店员工名册。员工是自由职业者,他们每周都有几乎固定的时间表,并且可能会在任何工作日/时间要求额外的时间表。
我是 python 和 django 的新手,我正在使用 django 管理员。
当我“手动”添加“Turno”(工作分配,我不确定,它可能是英语中的“Shift”?)时,一切都足够公平(对我来说)。
我需要某种方式通过 django 管理员添加每周固定的 Turnos(一次全部,而不是“手动”一个接一个),例如设置工作日、开始和结束时间以及两(或三个月)个月的停止日期提前...怎么样?
任何形式的帮助都会很棒,我并不是要你们来证明我的职责。
这是我的models.py:
from django.db import models
from django.contrib.auth.models import User
import datetime
class Dia(models.Model):
fecha = models.DateField(unique=True)
class Meta:
ordering = ['fecha']
def __unicode__(self):
return (self.fecha.strftime('%A %d de %b de \'%y'))
class Turno(models.Model):
dia = models.ForeignKey(Dia)
perfil_usuario = models.ForeignKey(User, verbose_name="Usuario")
comienza = models.TimeField()
finaliza = models.TimeField()
comentarios = models.TextField(blank=True, null=True)
def __unicode__(self):
return self.dia.fecha.strftime('%A %d de %b de \'%y') + ' - ' + self.perfil_usuario.username
这是我的 admin.py
from roquen.horarios.models import Turno, Dia
from django.contrib.auth.models import User
from django.contrib import admin
from django import forms
admin.site.register(Dia)
class TurnoAdminForm(forms.ModelForm):
class Meta:
model = Turno
def clean_finaliza(self):
data = self.cleaned_data['finaliza']
if data <= self.cleaned_data['comienza']:
raise forms.ValidationError('La hora de fin debe ser posterior a la de comienzo')
return data
class TurnoAdmin(admin.ModelAdmin):
form = TurnoAdminForm
list_display = ['dia', 'perfil_usuario', 'comienza', 'finaliza']
admin.site.register(Turno, TurnoAdmin)