avr*_*mov 1 django django-admin
在Django的管理员中,我了解了如何使用GET变量/admin/app/model/add?title=lol设置“添加对象”表单的字段(例如,将“标题”字段设置为“大声笑”)。
但是,我希望能够做一些事情,/admin/app/model/add?key=18并从另一个模型的实例中为我的字段加载默认数据。理想情况下,我还希望能够对填充表单的值进行一些处理。我该怎么做呢?
我设法弄清楚了。值得庆幸的是,Django允许您替换request的GETdict(它用于预先填充管理表单)。以下为我工作:
class ArticleAdmin(admin.ModelAdmin):
# ...
def add_view(self, request, form_url='', extra_context=None):
source_id = request.GET.get('source', None)
if source_id is not None:
source = FeedPost.objects.get(id=source_id)
# any extra processing can go here...
g = request.GET.copy()
g.update({
'title': source.title,
'contents': source.description + u"... \n\n[" + source.url + "]",
})
request.GET = g
return super(ArticleAdmin, self).add_view(request, form_url, extra_context)
Run Code Online (Sandbox Code Playgroud)
这样,我source从URL参数获取对象,对它们执行所需操作,然后预填充表单。
| 归档时间: |
|
| 查看次数: |
883 次 |
| 最近记录: |