Django admin:如何从GET变量填充新对象?

时间:2012-04-18 23:18:15

标签: django django-admin

在Django的管理员中,我已经看到如何使用GET变量设置“添加对象”表单的字段(例如/admin/app/model/add?title=lol将“标题”字段设置为“lol”。

但是,我希望能够按照/admin/app/model/add?key=18的方式执行某些操作,并从另一个模型的实例加载我的字段的默认数据。理想情况下,我还希望能够对填充表单的值进行一些处理。我该怎么做?

2 个答案:

答案 0 :(得分:4)

我设法搞清楚了。覆盖整个add_view方法似乎对我来说太混乱了。值得庆幸的是,Django允许您替换request的{​​{1}} dict(用于预先填充管理表单)。以下对我有用:

GET

这样,我从URL中的参数获取'source'对象,从中加载我需要的值,用它们做我想要的,并预先填充表单。

答案 1 :(得分:2)

您可以覆盖add_view实例的方法ModelAdmin。添加一个对象,将对象的pk设置为None,并将该对象作为instance提供给表单。具有pk == None的对象将始终作为新对象插入到表单save()

的数据库中