django – Djanjo admin:单击ForeignKey下拉列表旁边的add-anot
发布时间:2020-12-20 11:33:03 所属栏目:Python 来源:网络整理
导读:在Django Admin中,当你修改一个对象属性时,如果有一个ForeignKey,它将有一个包含所有选项的下拉框,另外还有一个“”按钮来添加更多选项.当我点击它时,我想预先填写一些数据. 我注意到如果我可以修改URL,我可以这样做(例如:http:// localhost:8000 / admin
在Django Admin中,当你修改一个对象属性时,如果有一个ForeignKey,它将有一个包含所有选项的下拉框,另外还有一个“”按钮来添加更多选项.当我点击它时,我想预先填写一些数据.
我注意到如果我可以修改URL,我可以这样做(例如:http:// localhost:8000 / admin / app / model / add /?field = value其中字段和值是以编程方式修改的.) 我想我必须覆盖admin.ModelAdmin使用的forms.ModelForm中的某些内容,但我不确定是什么. 解决方法
Django允许您替换请求的GET字典(它用于预填充管理表单).
如果要在url中发送模型表单的字段值,Django将自动从url get参数中获取值.例如,考虑 但是如果你在你的url中发送任何id,那么你需要通过覆盖add_view函数来修改get参数. 取自stackoverflow的答案 class ArticleAdmin(admin.ModelAdmin): // ... def add_view(self,request,form_url='',extra_context=None): source_id = request.GET.get('source',None) if source_id != 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"... nn[" + source.url + "]",}) request.GET = g return super(ArticleAdmin,self).add_view(request,form_url,extra_context) 它只是一个例子.它与你的模型和领域:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |