Skip to content

Instantly share code, notes, and snippets.

@makeev
Created May 31, 2018 16:55
Show Gist options
  • Save makeev/c7667e492e3222eecf393653e319ebf7 to your computer and use it in GitHub Desktop.
Save makeev/c7667e492e3222eecf393653e319ebf7 to your computer and use it in GitHub Desktop.
qqq
from django.utils import timezone
from django.db import models
from django.db.models import CASCADE
class EventsQueryset(models.QuerySet):
def upcoming(self):
now = timezone.now()
return self.filter(date__gte=now).order_by('date')
def passed(self):
now = timezone.now()
return self.filter(date__lt=now).order_by('-date')
class EventsManager(models.Manager):
def get_queryset(self):
return EventsQueryset(self.model, using=self._db)
def upcoming(self):
return self.get_queryset().upcoming()
def passed(self):
return self.get_queryset().passed()
class Event(models.Model):
location = models.ForeignKey('Location', on_delete=CASCADE)
name = models.CharField(max_length=100)
description = models.TextField(blank=True, default='')
date = models.DateTimeField()
duration = models.DurationField()
link = models.URLField(null=True, blank=True)
theme = models.CharField(max_length=1000, default='', blank=True)
is_partner = models.BooleanField(default=False)
is_published = models.BooleanField(default=True)
objects = EventsManager()
def __str__(self):
return self.name
class Meta:
ordering = ['-date']
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment