Если я правильно читаю ваш вопрос, вы можете достичь того, о чем просите, определив связанные имена в объявлениях m2m в моделях Ticket и Check, а затем сравнив наборы запросов
пример:
class Day(models.Model):
day = models.DateField()
class Ticket(models.Model):
ticket_name = models.CharField()
days = models.ManyToMany(Day, related_name="tickets")
class Check(models.Model):
check_name = models.CharField()
days = models.ManyToMany(Day, related_name="checks")
Теперь, чтобы найти все билеты и чеки за указанный день, сравнить их можно:
date = datetime.date(day=1, month=1, year=2000)
day = Day.objects.select_related().get(day=date)
ts = day.tickets
cs = day.checks
, если вы хотите, чтобы все чеки в дни, связанные с Билетом, указываются в ticket_name = ticket:
checks_for_ticket = Check.objects.filter(days__tickets__ticket_name="tickets")
если вы хотите получить все билеты в дни, связанные с чеком с check_name = check:
tickets_for_check = Ticket.objects.filter(days__checks__check_name="check")