[英]How To Separate Objects In Django Admin?
我有一个名为“ Product”的应用,具有以下models.py:
class Product(models.Model):
product_id = models.CharField(max_length=50)
pub_date = models.DateTimeField(default=datetime.now)
title = models.CharField(max_length=255)
price = models.DecimalField(max_digits=8, decimal_places=2)
user = models.ForeignKey(User, on_delete=models.CASCADE)
featured = models.BooleanField(default=False)
我想在Django Admin中有两个单独的部分: Products和Featured Products ,取决于featured = True
或False
。 因此,默认情况下,所有产品都列在“ 产品”部分下。 但是,如果Featured featured = True
它们将被移至Featured Products部分。 你能帮我怎么做吗? 提前致谢。
三个步骤:
您可以在此处了解更多信息: 使用代理模型来自定义Django Admin
有两种方法可以做到这一点。 最简单的方法可能是创建数据库视图,然后使用Django模型封装它。 您可以在数据库控制台中创建如下视图:
CREATE VIEW view_name AS
SELECT columns
FROM tables
[WHERE conditions];
完成此操作后,您可以像这样在django中引用视图:
class FeaturedProduct(modes.Model):
attr1 = models.CharField()
class Meta:
managed = False
db_table = '<name of your view here>'
确保将managed
设置为False
。 这是有关的文档 。 您想要这样做是因为django不是为您创建此模型,而是由您自己创建。
另一种方法是创建一个自定义Manager
。 这些管理器允许您修改模型的objects
属性,从而可以设置所需的查询集。 我认为您想看看Manager文档 ,就可以为对象定义自定义查询集 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.