【问题标题】:django foreign key admin interface and models structuredjango外键管理界面和模型结构
【发布时间】:2011-11-25 07:40:47
【问题描述】:

(所有代码都是某种伪代码,只是为了更好的阅读 我有一个发票模型:

 class Invoice(models.Model):
        // many fields here

我需要在这张发票上附加一些产品(带有单位价格和数量字段),所以我制作了额外的表格:

class InvoiceProduct(models.Model):
    product = models.ForeignKey
    quantity = models.IntegerField
    unit_price = models.DecimalField
    invoice = models.ForeignKey(Invoice)

所以,这几乎是第一个问题——«能不能做得更好?»

我的第二个问题是,在 django admin 中,我通过内联管理这些模型: Screenshot 但我的客户不想要。他想要一个按钮(添加产品),然后出现弹出窗口,其中包含以下字段: 产品、数量、单价。他填满它们,按 OK。然后弹出窗口关闭,主窗体中出现“产品字段”行。 我想我需要覆盖管理员表单模板?或者我需要编写自己的小部件或类似的东西?

对不起我的英语。

【问题讨论】:

    标签: python django foreign-keys inline admin


    【解决方案1】:

    我对您客户要求的建议

    他想要一个按钮(添加产品),然后出现弹出窗口,其中包含以下字段:产品、数量、单价。他填满它们,按 OK。

    不要为此使用 django 管理员。仅用于希望几乎直接访问数据的人。在我的脑海中,我看到它仅比数据库本身高出半步。这意味着它不适合用户而不是管理员。

    或者我需要编写自己的小部件或类似的东西?

    是的

    【讨论】:

    • 好的。但另一方面,其他具有标准管理界面的应用程序很适合他。因此,从不同位置添加数据可能会让他感到困惑。你的建议?我应该为所有这些应用创建自己的管理界面吗?
    • @Maxwell 是的。这不是管理界面的真正用途。它是为真正知道自己在做什么的人设计的。如果您不让他直接访问数据库,请不要让他进入管理界面。如果你愿意,那么你必须忍受它的不灵活。