我的 django 项目中有三个模型。我只希望那些产品显示在 django admin 中已经存在变体的variation_price 模型的产品字段中。我怎样才能做到这一点?
在 models.py 中:
class VariationManager(models.Manager):
def color(self):
return super(VariationManager,self).filter(variation_category='color', is_active=True)
def sizes(self):
return super(VariationManager, self).filter(variation_category='size', is_active=True)
variation_category_choice = (
('color', 'color'),
('size', 'size'),
)
class Variation(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
variation_category = models.CharField(max_length=100, choices=variation_category_choice)
variation_value = models.CharField(max_length=100)
objects = VariationManager()
class variation_price(models.Model):
price = models.IntegerField()
product = models.ForeignKey(Product, on_delete=models.CASCADE)
variations = models.ManyToManyField(Variation, blank=True)
is_active = models.BooleanField(default=True)
谢谢
limit_choices_to=…
[Django-doc]: 进行过滤
class variation_price(models.Model):
price = models.IntegerField()
product = models.ForeignKey(
Product,
limit_choices_to={'variation__isnull': False},
on_delete=models.CASCADE,
)
variations = models.ManyToManyField(Variation, blank=True)
is_active = models.BooleanField(default=True)