How to resolve AttributeError: 'ModelFormOptions' object has no attribute 'concrete_model' in Django

為{幸葍}努か 提交于 2020-12-27 05:37:24

问题


I have been trying to post data in my Django application using ajax post. The data is getting saved but in the terminal I am coming up against the following error:

AttributeError: 'ModelFormOptions' object has no attribute 'concrete_model'

Here are the relevant codes intended to achieve my goal:

Views.py:

def saveMaterial(request):
    if request.is_ajax and request.method == "POST":
        form = CreateMaterialForm(request.POST)    # It's a ModelForm
        mat_bom_list = CreateBomMatListFormset(request.POST, request.FILES)    # Using Inline formset factory

        if form.is_valid():
            form = form.save(commit=False)
            mat_bom_list = CreateBomMatListFormset(request.POST, request.FILES)

            if mat_bom_list.is_valid():
                form.save()
                mat_bom_list.save()
                ser_instance = serializers.serialize('json', [ form, mat_bom_list, ])
                return JsonResponse({"instance": ser_instance}, status=200)
            else:
                return JsonResponse({"error": form.errors}, status=400)
        return JsonResponse({"error": "Error"}, status=400)

    else:
        form = CreateMaterialForm()
        mat_bom_list = CreateBomMatListFormset()

    return render(request, "material_create.html", {"form": form, "mat_bom_list": mat_bom_list})

Ajax script:

$('#materialListForm').submit(function(e) {
    e.preventDefault();
    var serializedData = $(this).serialize();
    console.log(serializedData);

    $.ajax({
        url: "{% url 'material_create' %}",
        type: 'POST',
        data: serializedData,
        success: function() {
            console.log('Data Saved');
        },
        error: function (response, status, error) {
            alert(response.responseText);
        }
    });
});

The traceback:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/handlers/exception.py", line 35, in inner
    response = get_response(request)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/handlers/base.py", line 128, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/views/generic/base.py", line 69, in view
    return self.dispatch(request, *args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/contrib/auth/mixins.py", line 52, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/contrib/auth/mixins.py", line 85, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/views/generic/base.py", line 89, in dispatch
    return handler(request, *args, **kwargs)
  File "/Users/discrete/Desktop/proj/lead/views.py", line 1687, in post
    ser_instance = serializers.serialize('json', [ form, mat_bom_list, ])
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/serializers/__init__.py", line 128, in serialize
    s.serialize(queryset, **options)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/serializers/base.py", line 84, in serialize
    concrete_model = obj._meta.concrete_model
AttributeError: 'ModelFormOptions' object has no attribute 'concrete_model'

I find that there is not much information available on the web specifically for this error. Is it possible for somebody out there to please help solve this riddle?

来源:https://stackoverflow.com/questions/64708484/how-to-resolve-attributeerror-modelformoptions-object-has-no-attribute-concr

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!