Search code examples
pythondjangodjango-modelsdjango-querysetdjango-managers

NameError at / name 'article_finish_date' is not defined


So I am trying to create a custom Manager that extends the default one and I am getting an error that for the life of me I cannot fix. I've read all the django docs and can't see what I've done wrong!

ERROR:

NameError at /
name 'article_finish_date' is not defined

Here is my models.py

import datetime
from django.conf import settings
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User

class ArticleManager(models.Manager):
    def get_queryset(self):
        return super(ArticleManager, self).get_queryset().filter(article_finish_date==None)

class Article(models.Model):
    article_name_text = models.CharField(max_length=200)
    article_creation_date = models.DateTimeField('date created')
    article_publish_date = models.DateTimeField('date published', null=True, blank=True)
    article_finish_date = models.DateTimeField('date finished', null=True, blank=True)
    def __str__(self):
        return self.article_name_text
    actives = ArticleManager()

I have tried filtering by all the different values of the Article model, however the same issue occurs. I have tried both migrated and makemigrations, however no progress has been made.

Many thanks in advance, ask if you need more details!


Solution

  • The error is in this part:

    .filter(article_finish_date==None)
    

    Python is trying to evaluate the expression article_finish_date==None, except article_finish_date hasn't been defined yet. Instead, you want to use a single =

    .filter(article_finish_date=None)