从其他选项卡预填充可编辑的Django管理表单

2024-04-27 05:39:40 发布

您现在位置:Python中文网/ 问答频道 /正文

this is the django admin panel with a table named Committees

这是django管理面板,其中有一个名为Committees的表。 “委员会”表中有一个名为“委员会类型”的字段。在

有一个名为default的表,其模型定义如下

class default(models.Model):
    committee_type = models.CharField()
    description = models.CharField()
    quorum = models.InetgerField()

我想做的是, 1) 当我在admin中的committees表中选择committee type to city council时(如屏幕截图中所示),我想将description和quorum从默认表填充到admin中的description and quorum in committees表中 2) 这些填充的数据应该从默认表中检索,其中committee类型是city council 3) 从默认表填充这些字段后,这些字段应该可以在admin的committees表中编辑,并且应该能够保存在这个committee对象中

提前谢谢!在


Tags: djangodefault面板类型cityadminmodelstype
2条回答

你可以set the initial value for the field想要什么。如文档中所述,您可以将初始值设置为可调用的,以便在实例化表单时调用该可调用值,并在字段中预填充返回值。可调用函数可以是从数据库中检索相应字段的数据的函数。对于新的委员会(将使用未绑定的表单)而不是您要编辑的现有委员会(将使用绑定表单),都会发生这种情况。在

因为这是管理员,所以可以使用^{} attribute来设置要使用的窗体类,该窗体类应设置为相应模型的自定义ModelForm类。在

如果您只想设置初始数据,而不需要对这个特定的管理表单进行很多其他定制,那么可以重写^{} method。在

由于管理面板将由客户机在其pc上使用,因此可以使用下拉菜单上的自定义js/jquery事件侦听器来实现。当dropdown值被更改时,将对服务器进行ajax调用(发送选定的选项),服务器将返回可以使用jquery在前端填充的所需数据。您必须在视图.py文件,该文件将返回committee_type、description和quorum的json。在

您必须手动将此自定义js添加到有问题的管理页面的编辑页面模板中。我不知道最好的方法,也许重写有问题的模板页面,保持一切不变,只添加一个链接到上面代码的自定义js函数。在

希望这有帮助。在

相关问题 更多 >