Reputation: 1026
models.py
class StudentProfile(models.Model):
student = models.OneToOneField(
User, related_name='student', primary_key=True, parent_link=True, on_delete=models.CASCADE)
membership_end = models.DateTimeField(
verbose_name="Membership End Date", default=now, editable=False)
objects = StudentProfileManager()
managers.py
class StudentQuerySet(models.QuerySet):
def get_student_chat_list(self):
return self.filter(membership_end >= datetime.Now()).values_list('student_id', 'chat_user_sid')
class StudentProfileManager(models.Manager):
def get_queryset(self):
return StudentQuerySet(self.model, using=self._db)
def get_student_chat_list(self):
return self.get_queryset().get_student_chat_list()
This should have a very simple explanation, but I don't understand what's wrong here. I'm getting the following error:
NameError: name 'membership_end' is not defined
Upvotes: 1
Views: 98
Reputation: 4095
Try:
return self.filter(membership_end__gte=datetime.Now()).values_list('student_id', 'chat_user_sid')
I don't think you can use >=
or <=
, so You have to use gte
or lte
. Everything in your code looks fine. So, I doubt >=
is causing that error. Refs
Upvotes: 3