gpt4 book ai didi

Django 管理员 : How to populate a new object from GET variables?

转载 作者:行者123 更新时间:2023-12-01 22:42:31 27 4
gpt4 key购买 nike

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

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

最佳答案

我设法弄清楚了。值得庆幸的是,Django 允许您替换 requestGET 字典(它用于预填充管理表单)。以下对我有用:

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)

通过这种方式,我从 URL parameter 中获取了 source 对象,用它们做我想做的事,然后预填充表单。

关于Django 管理员 : How to populate a new object from GET variables?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10219494/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com