添加中间表单后,Django管理站点 *** 作无法正常工作

添加中间表单后,Django管理站点 *** 作无法正常工作,第1张

概述我有一个 django模型,我想为其添加自定义 *** 作.在这个动作中我需要添加一个带有选择形式的中间页面(下拉选择).我使用下面的代码来得到这个. 模型类: class VerificationAdmin(admin.ModelAdmin): list_display = ('id','asset_code', 'scan_time','credential','status','op @H_419_2@ 我有一个 django模型,我想为其添加自定义 *** 作.在这个动作中我需要添加一个带有选择形式的中间页面(下拉选择).我使用下面的代码来得到这个.

模型类:

class Verificationadmin(admin.Modeladmin):      List_display   = ('ID','asset_code','scan_time','credential','status','operator','location','auth_code','product_details')      List_filter    = ('status','location')      ordering       = ('-scan_time',)      search_fIElds  = ('asset_code',)      actions = ['set_interval']      class AddScanningIntervalForm(forms.Form):           _selected_action = forms.CharFIEld(Widget=forms.MultipleHIDdeninput)           period_choice=["4 hrs","6 hrs","8 hrs","10 hrs","12 hrs"]           interval = forms.ChoiceFIEld(choices=[(x,x) for x in period_choice])      @csrf_exempt      def set_interval(self,request,queryset):           print "before action"           form = None           if 'apply' in request.POST:               form = self.AddScanningIntervalForm(request.POST)               print "action taken"               if form.is_valID():                   interval = form.cleaned_data['interval']                   print interval                   count = 0                   for vObj in queryset:                       print vObj.asset_code,vObj.status,interval                                       at=Alerttable(asset_code=vObj.asset_code,status=vObj.status,interval=interval)                       at.save()                       count += 1                   self.message_user(request,"Scanning Policy Successfully added to %s assets %s." %count)                   return httpResponseRedirect(request.get_full_path())           if not form:                   form = self.AddScanningIntervalForm(initial={'_selected_action': request.POST.getList(admin.ACTION_CHECKBox_name)})                   return render_to_response('admin/set_alert.HTML',{'verifications': queryset,'tag_form': form},context_instance=RequestContext(request))      set_interval.short_description = "Add Periodic Scanning Policy"

添加模板部分:

<!DOCTYPE HTML>{% extends "admin/base_site.HTML" %}{% block content %}<p>Select tag to apply:</p><form action="" method="post">    {{ tag_form }}    {% csrf_token %}    <p>The scanning policy will be applIEd to:</p>    <ul>{{ verifications|unordered_List }}</ul>    <input type="hIDden" name="action" value="add_tag" />    <input type="submit" name="apply" value="Set Interval" /></form>{% endblock %}

它工作正常到中级页面,但是在中间页面中选择表单中的一个警报选项并单击设置间隔按钮后,我得到结果“没有选择 *** 作”

解决方法 这个问题有点陈旧,但未来有任何参考;确保中间表单中的’action’属性与admin函数名称匹配.在这种情况下,’set_interval’而不是’add_tag’.

POST上下文也必须包含’_selected_action’值,这些值应与所选项pks匹配.

@H_419_2@ 总结

以上是内存溢出为你收集整理的添加中间表单后,Django管理站点 *** 作无法正常工作全部内容,希望文章能够帮你解决添加中间表单后,Django管理站点 *** 作无法正常工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1055311.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存