【问题标题】:Cant recover form无法恢复表格
【发布时间】:2016-07-27 01:17:41
【问题描述】:

我想为 Django Admin 中的特定模板从 add_view 调用默认表单。我将使用它的值(我通过表单从模板中恢复)并做我的事情。我怎么称呼它?

def add_view(self, request, form_url='', extra_context=None):
    if request.method == 'POST':
    form = defaultForm(request.POST)
    if form.is_valid():
        field1= formulario.cleaned.data['field1'] + "\n" 
        #DO MY STUFF
    else:
        raise raise ValidationError(_("Error1"), code='Error1')

return HttpResponseRedirect("/admin/db/table_name/")

【问题讨论】:

    标签: django django-forms django-templates django-admin django-views


    【解决方案1】:

    ModelAdmin 有 'get_form' 方法:

    ...
            default_form = self.get_form(request)
            form = default_form(request.POST, request.FILES, instance=None)
    ...
    

    查看文档: https://docs.djangoproject.com/en/1.9/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_form

    【讨论】:

    • 异常出现在--form = self.get_form(request.POST)--。 'QueryDict' 对象没有属性 'user'
    • 对不起@EliasMP,'get_form' 返回表单类,而不是表单对象,我已经修复了答案,再次抱歉。
    • 什么都没有。你在帮我。现在看起来它可以工作,但是当我尝试这样做时:form.is_valid(): return 'model_name' object has no attribute 'cleaned_data' @Anderson-Lima
    • @EliasMP 尝试使用 form.cleaned_data['field1'] 代替 form.cleaned.data['field1']
    • @EliasMP,我在这里检查了两种形式,一种有效,一种无效,都有clean_data。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多