设置django-jquery-fileupload https://github.com/sigurdga/django-jquery-file-upload并且它有效,这是模型
# encoding: utf-8
from django.db import models
class Picture(models.Model):
"""This is a small demo using just two fields. The slug field is really not
necessary, but makes the code simpler. ImageField depends on PIL or
pillow (where Pillow is easily installable in a virtualenv. If you have
problems installing pillow, use a more generic FileField instead.
"""
file = models.FileField(upload_to="uploads")
slug = models.SlugField(max_length=50, blank=True)
def __str__(self):
return self.file.name
@models.permalink
def get_absolute_url(self):
return ('upload-new', )
def save(self, *args, **kwargs):
self.slug = self.file.name
super(Picture, self).save(*args, **kwargs)
def delete(self, *args, **kwargs):
"""delete -- Remove to leave file."""
self.file.delete(False)
super(Picture, self).delete(*args, **kwargs)
和视图
# encoding: utf-8
import json
from django.http import HttpResponse
from django.views.generic import CreateView, DeleteView, ListView
from .models import Picture
from .response import JSONResponse, response_mimetype
from .serialize import serialize
class PictureCreateView(CreateView):
model = Picture
fields = "__all__"
def form_valid(self, form):
self.object = form.save()
files = [serialize(self.object)]
data = {'files': files}
response = JSONResponse(data, mimetype=response_mimetype(self.request))
response['Content-Disposition'] = 'inline; filename=files.json'
return response
def form_invalid(self, form):
data = json.dumps(form.errors)
return HttpResponse(content=data, status=400, content_type='application/json')
现在忽略了上传图片的幕后情况,但我需要弄清楚的是还有另一个模型UserService
需要使用Picture
链接到ForeignKey
}或ManytoManyField
所以图片是用户服务上的项目。
如果您对如何实现这一点有所了解,那么它就可以上传。