【问题标题】:django formset causing ValidationErrordjango formset 导致 ValidationError
【发布时间】:2013-05-12 01:02:33
【问题描述】:

我在使用 django formset 时遇到问题。发出 POST 请求会导致表单出现 ValidationErrors。我查看了 SO 上的其他帖子,但没有一个答案对我有用。有什么想法吗?

class CompileTime(models.Model):
    changelist         = models.ForeignKey(Changelist)
    corpus             = models.CharField(max_length = 100)
    frequency          = models.IntegerField()
    asmTollvmIR        = models.OneToOneField(TimeStatObj, related_name = "asmTollvmIR")
    optimizationPasses = models.OneToOneField(OptimizationPassesTimeStat)

CompileTimeForm = modelformset_factory(CompileTime)

我的 views.py 看起来像这样。

@csrf_exempt
def add_form_data(request, formsetclass, custom_logic=None):
    response_obj = create_response(False)
    print formsetclass

    if (request.method == "POST"):
        try:
            formset = formsetclass(data=request.POST)
        except ValidationError:
            formset = None

        print formset
        if (formset and formset.is_valid()):
            if (custom_logic != None):
                response_obj = custom_logic(formset, response_obj)

            response_obj.update({"status": 0})
            return json_response_from(response_obj)
        else:
            response_obj.update({"status":-1, "response_message": "Form is invalid"})
            return json_response_from(response_obj)

    elif (request.method == "GET"):
        formset = formsetclass()
        return render_to_response("dashboard/show_form.html",
                                  {"formset": formset},
                                  context_instance=RequestContext(request))

@csrf_exempt
def add_compile_time_stats(request):
    return add_form_data(request, CompileTimeForm, save_form)

模板如下所示。

<form action="/dashboardMain/add_changelist" method="post">
    {{ formset.management_form }}
    <table>
        {% for form in formset.forms %}
            {{ form }}
        {% endfor %}
    </table>
  <input type="submit" value="Send" /> <input type="reset">
</form>

【问题讨论】:

    标签: django django-models django-forms django-templates


    【解决方案1】:

    我意识到的问题是我没有从 add_compile_time_stats 函数返回。添加 return 语句导致问题消失。 :) 以前应该看过的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-12
      • 1970-01-01
      • 1970-01-01
      • 2016-11-28
      • 2020-09-16
      • 2013-05-09
      • 2019-06-02
      • 1970-01-01
      相关资源
      最近更新 更多