Django 模型:将"week of day"字段设置为现有模型中的字符串。日期字段()



我正在尝试基于另一个模型Teacher的字段设置Session类的字段。基本上,每个教师都有一个指定的星期一(星期一等(,我希望每个Session对象都有基于Session日期字段的Teacher.name字段。

例如,日期为2021-12-25的Session类的字段为"工作日"="周六",因此会得到一个my_tacher_name="周六先生">

由于我需要一个字符串值;星期一";为了查询当天分配给我的老师,我正在想办法做到这一点!

这是代码:

from django.utils import timezone
from datetime import date, datetime
class Session(models.Model):
class Timeblock(models.TextChoices):
A = "8:00-8:20", "8:00-8:20"
B = "8:20-8:40", "8:20-8:40"
C = "8:40-9:00", "8:40-9:00"
D = "9:00-9:20", "9:00-9:20"
E = "9:20-9:40", "9:20-9:40"
F = "9:40-10:00", "9:40-10:00"
student = models.ForeignKey(User, on_delete=models.CASCADE)
date_posted = models.DateTimeField(default=timezone.now)
date = models.DateField()
timeblock = models.CharField(max_length=10, choices=Timeblock.choices)
helptype = models.CharField(max_length=50)
class Teacher(models.Model):
class Weekday(models.TextChoices):
mon = "Monday", "Monday"
tue = "Tuesday", "Tuesday"
wed = "Wednesday", "Wednesday"
thu = "Thursday", "Thursday"
fri = "Friday", "Friday"
sun = "Sunday", "Sunday"
name = models.CharField(max_length=50)
email = models.CharField(max_length=50)
expertise = models.CharField(max_length=100)
assigned_day = models.CharField(max_length=10, choices=Weekday.choices)
def __str__(self):
return self.name

以下是我在Session课堂上迄今为止所做的尝试:

weekday = date.datetime.strftime("%A")
my_teacher = Teacher.objects.filter(assigned_day=weekday)
my_teacher_name = my_teacher.name

这引发了错误:AttributeError: 'DateTimeField' object has no attribute 'datetime'

我也知道我可以在模板中使用{{ session.date|date:"F d - l" }},但我不知道如何将其实际用作模型的字段,而不仅仅是用于显示。非常感谢您的帮助!!

weekday = date_posted.datetime.strftime("%A")我认为这就是罪魁祸首。date_posted已经是datetime值,因此出现错误。

weekday = date_posted.strftime("%A")应该是您的解决方案。

最新更新