2012-05-11 27 views
1

如果我可以將this jQuery file uploader添加到我的Django管理面板,那真是太棒了,但我是Django的新手,我不確定從哪裏開始。有人能給我一些想法,並指出我在這裏正確的方向嗎?添加jQuery文件上傳到Django管理

+0

你試過[django-directupload](https://github.com/cuker/django-directupload)嗎? – ilvar

+0

這看起來很有趣。你以前用過嗎?我無法正常工作 – HighLife

+0

不能:)你有什麼問題? – ilvar

回答

1

我認爲這對你有用。您可以在模板文件中嵌入它,比如:

{% block extrahead %}{{ block.super }} 
<script type="text/javascript" src="/static/js/admin/app/model/uploadjq.js"></script> 
{% endblock %} 
0

您可以通過一個命令安裝包的Django管理員-multiupload,被添加到admin基於jQuery文件上傳一張表格,:

pip install git+git://github.com/gkuhn1/django-admin-multiupload.git 

或者只是複製到您的項目從使用的https://github.com/gkuhn1/django-admin-multiupload.git 例子:

from django.contrib import admin 
from django.shortcuts import get_object_or_404 

from gallery.models import Gallery, Image 

from multiupload.admin import MultiUploadAdmin 

class ImageInlineAdmin(admin.TabularInline): 
    model = Image 


class GalleryMultiuploadMixing(object): 

    def process_uploaded_file(self, uploaded, gallery, request): 
     if gallery: 
      image = gallery.images.create(file=uploaded) 
     else: 
      image = Image.objects.create(file=uploaded, gallery=None) 
     return { 
      'url': image.file.url, 
      'thumbnail_url': image.file.url, 
      'id': image.id, 
      'name': image.filename 
     } 

class GalleryAdmin(GalleryMultiuploadMixing, MultiUploadAdmin): 
    inlines = [ImageInlineAdmin,] 
    multiupload_form = True 
    multiupload_list = False 

    def delete_file(self, pk, request): 
     ''' 
     Delete an image. 
     ''' 
     obj = get_object_or_404(Image, pk=pk) 
     return obj.delete() 


class ImageAdmin(GalleryMultiuploadMixing, MultiUploadAdmin): 
    multiupload_form = False 
    multiupload_list = True 


admin.site.register(Gallery, GalleryAdmin) 
admin.site.register(Image, ImageAdmin) 

凡畫廊和圖像型號有:

from django.db import models 

# Create your models here. 

class Gallery(models.Model): 
    class Meta: 
     verbose_name_plural = 'Galleries' 
    title = models.CharField('Title', max_length=20) 

    def __str__(self): 
     return self.title 


class Image(models.Model): 
    file = models.FileField('File', upload_to='images/') 
    gallery = models.ForeignKey('Gallery', related_name='images', blank=True, null=True) 

    def __str__(self): 
     return self.filename 

    @property 
    def filename(self): 
     return self.file.name.rsplit('/', 1)[-1] 
+0

django -admin-multiupload使用jquery文件上傳插件爲我提供基本管理支持多文件上傳。 –