Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django外键管理接口和模型结构_Python_Django_Foreign Keys_Inline_Admin - Fatal编程技术网

Python django外键管理接口和模型结构

Python django外键管理接口和模型结构,python,django,foreign-keys,inline,admin,Python,Django,Foreign Keys,Inline,Admin,(所有代码都是某种伪代码,只是为了更好地阅读 我有一个发票型号: class Invoice(models.Model): // many fields here 我需要将一些产品(带有单位价格和数量字段)附加到此发票,因此我制作了附加表: class InvoiceProduct(models.Model): product = models.ForeignKey quantity = models.IntegerField unit_price =

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

 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中,我通过内联线管理这些模型: 但我的客户却不这么想。他想要一个按钮(添加产品),然后出现弹出窗口,其中包含以下字段: 产品、数量、单价。他填写它们,按OK。然后弹出窗口关闭,主窗体中出现带有“产品字段”的行。 我想我需要重写管理表单模板?或者我需要编写我自己的小部件或类似的smth


对不起,我说的是英语。

我对您客户的要求提出了建议

他需要一个按钮(添加产品),然后出现弹出窗口,其中包含以下字段:产品、数量、单价。他填充这些字段,然后按“确定”

不要使用django admin进行此操作。只适用于希望几乎直接访问数据的人。在我看来,它只比数据库本身高了一半。这意味着它不适合用户而不是管理员

或者我需要编写自己的widget或类似的smth


是的

好的。但另一方面,其他具有standart管理界面的应用程序很适合他。因此,添加来自不同位置的数据可能会让他感到困惑。你的建议?我应该为所有这些应用程序创建自己的管理界面吗?@Maxwell是的。这不是管理界面的真正用途。它是为真正了解这些应用程序的人设计的如果你不给他直接访问数据库的权限,就不要让他进入管理界面。如果你愿意,你就不得不忍受数据库的僵化。