当我制作表单ajax时,它不会将图像保存到模型中

时间:2015-12-25 11:17:06

标签: javascript jquery ajax django

我的模型在页面发出POST请求时工作正常,但是当它使得它发出ajax请求时它停止保存图像(我无法将图像更改为另一个),其余字段效果很好。可能是什么问题? 这是我的模特:

class Contact(models.Model):
    name = models.CharField(max_length=40, blank=False)
    last_name = models.CharField(max_length=40, blank=False)
    date_of_birth = models.DateField(blank=True, null=True)
    bio = models.TextField(blank=True)
    contacts = models.TextField(blank=True)
    email = models.EmailField(blank=True)
    jabber = models.CharField(max_length=40)
    skype = models.CharField(max_length=40)
    other_contacts = models.TextField(blank=True)
    photo = models.ImageField(upload_to='photo/', null=True)

Ajax功能:

$(function(){
    var form = $('#contact_form');
    form.submit(function(e){
        $('#sendbutton').attr('disabled', true)
        $('#ajax-progress-indicator').show();
        $('#ajaxwrapper').load('/1/edit/' + '#ajaxwrapper',
            form.serializeArray(), function(responseText, responseStatus) {
                $('sendbutton').attr('disabled', false)
                $('#ajax-progress-indicator').hide();
            });
        e.preventDefault();
    });

});

的url:

urlpatterns = patterns(
    '',
    # Examples:
    url(r'^$', 'apps.hello.views.home', name='home'),    
)

from .settings import MEDIA_ROOT, DEBUG


if DEBUG:
# serve files from media folder
        urlpatterns += patterns('',
                url(r'^uploads/(?P<path>.*)$', 'django.views.static.serve', {
                        'document_root': MEDIA_ROOT}))

形式:

class ContactForm(forms.ModelForm):
    """
    The model for Contact model edit
    """
    # other_contacts = forms.CharField(widget=PreformattedTextWidget)
    class Meta:
        model = Contact
        fields = ['name', 'last_name', 'date_of_birth', 'bio', 'contacts', 
            'email', 'jabber', 'skype', 'other_contacts', 'photo']
        widgets = {
            'skype': forms.Textarea(attrs={'placeholder': 'Enter your skype ID'}),
            # 'other_contacts': PreformattedTextWidget()
        }

查看课程:

class ContactUpdateView(UpdateView):
    model = Contact
    form_class = ContactForm
    template_name = 'edit.html'

    def get_success_url(self):
        return reverse('home')


    def post(self, request, *args, **kwargs):
        if request.POST.get('cancel_button'):
            return HttpResponseRedirect(
                u'%s?status_message=Canceled!'
                    %reverse('home'))
        else:
            return super(ContactUpdateView, self).post(request, *args,
                     **kwargs)
    def get_ajax(self, request, *args, **kwargs):
        return render(request, 'home.html')

0 个答案:

没有答案