嘿,我想检索所有员工信息以及相应的工作时间 请帮助我,这是我的模特
class Staff(models.Model):
vendor = models.ForeignKey(Vendor,on_delete=models.DO_NOTHING,blank = True)
name = models.CharField(max_length=100)
last_name = models.CharField(max_length = 100)
gender = models.IntegerField(choices=GENDER_TYPE, default=0)
class OperatingHours_staff(models.Model):
staff = models.ForeignKey(Staff,related_name='days',on_delete = models.CASCADE)
day = models.IntegerField(choices = constants.DAYS)
start_time = models.TimeField()
end_time = models.TimeField()
预先感谢
答案 0 :(得分:1)
您可以尝试这样:
ModelState
基本上,我正在使用related objects
进行查询。在定义从from datetime import datetime
Staff.objects.filter(
days__day="SOME_DAY",
days__start_time__lte=datetime.now().time(),
days__end_time__gte=datetime.now().time()
)
到related_name='days'
的FK时,您已经定义了OperatingHours_staff
。
如果您需要员工的所有数据,请尝试以下操作:
Staff
或者您可以遍历Staff查询集(使用prefetch_related()
来减少数据库命中率):
Staff.objects.values(
'days__day', 'days__start_time', 'days__end_time'
)
或者如果您有职员,则使用如下反向关系:
for staff in Staff.objects.all().prefetch_related('days'):
print(staff.days.all())