Search code examples
pythondjangodjango-modelsdjango-testing

ValueError: The 'image' attribute has no file associated with it. when testing a model with a NULLABLE image field


I'm testing a model called Category that looks like this:

class Category(models.Model):
    image = models.ImageField(upload_to='images', null=True, blank=True)
    title = models.CharField(max_length=200, unique=True, blank=False, null=False)

As you can see the image field is nullable but when I try to create a Category instance in my TestCase Im getting the following error:

raise ValueError("The '%s' attribute has no file associated with it." % self.field.name)
ValueError: The 'image' attribute has no file associated with it.

Here's the test:

def setUp(self):
    self.category = Category.objects.create(title='test_category')

I already tried creating it like this:

Category.objects.create(title='test_category', image=Null)

But it didn't work.


Solution

  • Turns out it was a template error since I didn't handle the possibility of a category not having an image and when I ran the test on a CategoryListView it returned an error because the test category had no image.