如何在基于类的通用视图中过滤 ManytoManyField

问题描述

我正在尝试过滤查询集,以了解我的模型何时有今天(例如星期一、星期二、星期三等)。我在我的模型中将工作日作为 manytomanyfield,以便用户可以为模型的单个实例选择多个工作日。我知道我的观点下面的代码很乱,但我希望你们明白:

    today = datetime.date.today()
    today_weekday = 0
    if today.weekday() == '0':
        today_weekday = 'Monday'
    if today.weekday() == '1':
        today_weekday = 'Tuesday'
    if today.weekday() == '2':
        today_weekday = 'Wednesday'
    if today.weekday() == '3':
        today_weekday = 'Thursday'
    if today.weekday() == '4':
        today_weekday = 'Friday'

    queryset = queryset.filter(agent__user=user).filter(
        class_start_date__lte=today,class_end_date__gte=today,).filter(weekday=today_weekday)

我遇到问题的部分是最后一部分 .filter(weekday=today_weekday)weekday 是我模型中的 manytomany 字段,我想检查今天的工作日是否与模型中的某个工作日匹配。我希望你们能帮我解决这个问题。我相信有更好的方法可以做到这一点,但我希望你们能先帮我修复 .filter(weekday=today_weekday),这样它至少可以正常工作。非常感谢!

这是上面视图中引用的模型部分:

weekday = models.ManyToManyField('Weekday',help_text='Select weekdays for the student')

此外,此 Weekday 模型中的对象很简单: 周一、周二、周三、周四、周五

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)