在Django中创建订单

在Django中创建订单,django,django-admin,django-forms,Django,Django Admin,Django Forms,大家好,我有一些关于django管理员的问题 首先是有关的细节。我目前有客户机、打印机、墨盒和订单型号 打印机型号与墨盒型号之间有一个ManyToManyField,允许您选择可与该打印机一起使用的所有墨盒 客户对他们拥有的打印机有很多领域 1) 我想通过Django admin创建一个订单,它允许您通过ManyToManyField指定客户端、一个双计数和多个盒带。这有点棘手,因为我必须通过另一个表来完成,该表指定是新墨盒还是重新加注 2) 我希望管理员过滤墨盒,只显示属于他们自己的打印机的墨

大家好,我有一些关于django管理员的问题

首先是有关的细节。我目前有客户机、打印机、墨盒和订单型号

打印机型号与墨盒型号之间有一个ManyToManyField,允许您选择可与该打印机一起使用的所有墨盒

客户对他们拥有的打印机有很多领域

1) 我想通过Django admin创建一个订单,它允许您通过ManyToManyField指定客户端、一个双计数和多个盒带。这有点棘手,因为我必须通过另一个表来完成,该表指定是新墨盒还是重新加注

2) 我希望管理员过滤墨盒,只显示属于他们自己的打印机的墨盒

3) 另外,我希望有一个字段保存他们订单的总价,但它应该根据他们添加到订单中的盒带数量进行计算。我不知道是否应该通过向订单中添加更多相同的盒式磁带,或者在相关表格中指定数量的另一个字段来实现


这可以在管理员中完成,还是我需要使用表单?如果是这样的话,我该如何将其添加到管理员中?这似乎很困难,而且可能需要分多个部分来完成,因为为了过滤盒带列表,我必须事先了解客户。

据我所知,不,这是不可能的。开发版本有一些限制,但在我看来,基于客户的限制是不可能的,因为它依赖于单独的外键

最好的建议是,如果你真的想在管理表单中实现它,那就使用Javascript来实现。您仍然需要进行AJAX调用,以获取客户拥有的打印机列表以及在此基础上显示的墨盒列表,但这是可以做到的。您只需指定要加载的JS文件

但我认为这是一项不值得做的工作。我认为做这件事最简单的方法就是用。这样,您将有一个步骤来选择客户,以便在下一步中知道要显示哪些盒带


希望有帮助

就我所知,不,这不太可能。开发版本有一些限制,但在我看来,基于客户的限制是不可能的,因为它依赖于单独的外键

最好的建议是,如果你真的想在管理表单中实现它,那就使用Javascript来实现。您仍然需要进行AJAX调用,以获取客户拥有的打印机列表以及在此基础上显示的墨盒列表,但这是可以做到的。您只需指定要加载的JS文件

但我认为这是一项不值得做的工作。我认为做这件事最简单的方法就是用。这样,您将有一个步骤来选择客户,以便在下一步中知道要显示哪些盒带


希望有帮助

我也遇到过类似的问题,并得出结论,在许多类似的情况下,使用表单编写自己的管理界面比尝试将功能硬塞进管理界面要好得多,而管理界面本来就不存在


到目前为止,这取决于你的产品基础是什么样的。如果您可能有客户订购50个相同的小部件,您可能需要一个数量字段。如果客户更有可能订购两个小部件,一个是红色,一个是蓝色,请将每个小部件分别添加到manytomany字段中,并在您的订购界面中将它们分组。

我处理过类似的问题,并得出结论,在许多情况下,像这样,使用表单编写自己的管理界面确实比尝试将功能硬塞进管理界面要好得多,因为管理界面本来就不存在

到目前为止,这取决于你的产品基础是什么样的。如果您可能有客户订购50个相同的小部件,您可能需要一个数量字段。如果客户更有可能订购两个小部件,一个红色,一个蓝色,则将每个小部件分别添加到manytomany字段中,并在您的订购界面中将它们分组