Python 如何在Django Admin中分离对象?

Python 如何在Django Admin中分离对象?,python,django,Python,Django,我有一个名为“Product”的应用程序,具有以下型号。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_d

我有一个名为“Product”的应用程序,具有以下型号。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中有两个单独的部分:产品特色产品,具体取决于
Featured=True
False
。 因此,默认情况下,所有产品都列在产品部分下。但是如果
featured=True
他们将被移动到特色产品部分。你能帮我怎么做吗?提前感谢。

三个步骤:

  • 为型号
    产品
    编写一个
  • 将更改为仅返回特色产品
  • 像其他模型一样,在管理员中注册代理模型

  • 您可以在这里了解更多信息:

    有几种方法可以做到这一点。最简单的可能是创建一个数据库视图,然后使用django模型封装它。您可以在数据库控制台中创建这样的视图:

    创建视图\u名称为
    选择列
    从桌子上
    [在有条件的情况下];
    
    完成此操作后,可以在django中引用视图,如下所示:

    
    类别功能产品(模式.模型):
    attr1=models.CharField()
    类元:
    托管=错误
    db_表=“”
    
    确保
    managed
    设置为
    False
    。以下是与此相关的信息。您之所以希望这样做,是因为django不是为您创建此模型,而是您自己创建的


    另一种方法是创建自定义的
    管理器
    。这些管理器允许您修改模型的
    对象
    属性,允许您设置所需的查询集。我想您应该想看看,您可以看看。

    非常感谢您的帮助!一旦产品移动到特色产品,是否有办法从产品部分“删除”该产品?是的,请阅读关于ModelAdmin.get\u queryset方法的内容,并在那里筛选要显示的产品。