首页 > 解决方案 > 使用Django,Ajax,jQuery提交表单而不刷新页面?

问题描述

我是一个使用 Django 的新手。我需要一个简单的例子。如何使用 Django、Ajax、jQuery 在不刷新页面的情况下提交表单(帖子)?

这是我的表单、视图和模板:

视图.py

import json
from django.shortcuts import *
from django.template import RequestContext
from linnea.web_interface import run_linnea 
from linnea_demo_app.forms import *

def linnea_demo(request):
    if request.method == "POST":
        form = AdvertForm(request.POST)

        message = 'something wrong!'
        if(form.is_valid()):
            print(request.POST['title'])
            message = request.POST['title']

        return HttpResponse(json.dumps({'message': message}))

    return render_to_response('linnea_demo.html',
            {'form':AdvertForm()}, RequestContext(request))

表格.py

from django import forms
from django.forms import ModelForm
from linnea_demo_app.models import Advert

class AdvertForm(ModelForm):
    class Meta:
        model = Advert

模型.py

from django.db import models


class Advert(models.Model):
    text = models.TextField()

索引.html

<form action="" method="POST" id="post-form">
                  {% csrf_token %}
                  {{form.as_p}}
                  <input type="submit" id="btnGetKernel" class="" value="Generate Kernel"/>
              </form>

.js

$('#form').submit(function(e){
    $.post('/url/', $(this).serialize(), function(data){ 
       $('.message').html(data.message);
    });
    e.preventDefault();
});

但是,我收到了这个错误:

django.core.exceptions.ImproperlyConfigured:禁止创建没有“字段”属性或“排除”属性的 ModelForm;表单 AdvertForm 需要更新。

我做对了吗?

标签: javascriptpythonjquerydjango

解决方案


错误信息非常清楚。

禁止创建没有 'fields' 属性或 'exclude' 属性的 ModelForm;表单 AdvertForm 需要更新。

您需要更新AdvertForm以包含 afieldsexclude属性。

from django import forms
from django.forms import ModelForm
from linnea_demo_app.models import Advert

class AdvertForm(ModelForm):
    class Meta:
        model = Advert
        fields = ['text']

推荐阅读