このjQueryファイルアップローダーをDjango管理パネルに追加できれば本当に素晴らしいですが、私はDjangoを初めて使用するため、どこから始めればよいのかよくわかりません。誰かが私にいくつかのアイデアを与えて、ここで私を正しい方向に向けることができますか?
質問する
1356 次
2 に答える
1
これはあなたにとって便利だと思います。次のようなテンプレートファイルに埋め込むことができます。
{% block extrahead %}{{ block.super }}
<script type="text/javascript" src="/static/js/admin/app/model/uploadjq.js"></script>
{% endblock %}
于 2012-09-18T10:00:40.823 に答える
0
次のコマンドで、jQuery File Upload に基づく django admin a フォームに追加されたパッケージ django-admin-multiupload をインストールできます。
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]
于 2013-10-27T19:11:55.803 に答える