Django:当开始日期是Datetime对象时,获取在特定年份和月份开始的会议列表



我正在用Python/Django制作一个web应用程序,并试图制作一个显示会议的日历。我在models.py中有以下内容。

class Meeting(models.Model):
id = models.AutoField(primary_key=True)
admin = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
name = models.CharField(max_length=20, null=True)
location = models.CharField(max_length=200, null=True)
start_date = models.DateTimeField(default=None, null=True)
end_date = models.DateTimeField(default=None, null=True)
description = models.CharField(max_length=2000, null=True)
class CustomUser(AbstractUser):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=200, null=True)
email = models.EmailField(max_length=70, null=True, unique=True)
password = models.CharField(max_length=50, null=True)
class Member(models.Model):
user = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
meeting = models.ForeignKey(Meeting, on_delete=models.CASCADE)

从本质上讲,用户和会议在成员模型中是链接的。我在database.py中有以下功能,它创建了一个新的会议:

def createMeeting(name, location, admin, start_date, end_date, description):
new = Meeting(name=name, location=location, admin=admin, start_date=start_date, end_date=end_date, description=description)
if not duplicate(Meeting, new):
new.save()
membership = Member(user=admin, meeting=new)
if not duplicate(Member, membership):
membership.save()

我正在尝试获取一个登录用户在特定月份和年份参加的所有会议的列表。然而,由于会议的start_date是DateTime对象,我不确定什么是最好的方法。任何见解都将不胜感激。

您可以在start_date字段上使用__year查找[Django-doc]和__month查询[Django-dc]进行过滤:

Meeting.objects.filter(
start_date__year=2019,
start_date__month=11,
member__user=request.user
)

当然,201911可以是不同的年份和月份。

相关内容

  • 没有找到相关文章

最新更新