Решение должно быть таким, потому что я думаю, что переупорядочение может решить вашу проблему. Однако, пожалуйста, поместите 2 строки между вашими классами и 1 строку между вашими функциями. Это может сделать ваш код более читабельным, а также более подходящим для Python рекомендаций.
from django.db import models
from django.contrib.auth.models import User
class ActiveManager(models.Model):
def active(self):
return self.filter(active=True)
class ProductTag(models.Model):
name = models.CharField(max_length=40)
slug = models.SlugField(max_length=48)
description = models.TextField(blank=True)
active = models.BooleanField(default=True)
def __str__(self):
return self.name
def natural_key(self):
return(self.slug,)
class Product(models.Model):
name = models.CharField(max_length=32)
description = models.TextField(blank=True)
price = models.DecimalField(max_digits = 5, decimal_places = 2)
slug = models.SlugField(max_length=48)
active = models.BooleanField(default=True)
in_stock = models.BooleanField(default=True)
date_updated = models.DateTimeField(auto_now=True)
objects = ActiveManager()
tags = models.ManyToManyField(ProductTag, blank=True)
def __str__(self):
return self.name
class ProductImage(models.Model):
product = models.ForeignKey(
Product, on_delete=models.CASCADE)
image = models.ImageField(upload_to="product-images")
thumbnail = models.ImageField(
upload_to="product-thumbnails", null=True)