0

「github」に投稿された例を使用しようとしています。リンクはhttp://github.com/tstone/django-uploadifyです。そして就職に困っています。手伝って頂けますか?私は一歩一歩従いましたが、うまくいきません。

「URL」にアクセス/アップロード/唯一のことは「True」を返すことです

settings.py の一部

import os
PROJECT_ROOT_PATH = os.path.dirname(os.path.abspath(__file__))

MEDIA_ROOT = os.path.join(PROJECT_ROOT_PATH, 'media')
TEMPLATE_DIRS = (  os.path.join(PROJECT_ROOT_PATH, 'templates'))

urls.py

from django.conf.urls.defaults import *
from django.conf import settings
from teste.uploadify.views import *
from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns('',
    (r'^admin/', include(admin.site.urls)),  
    url(r'upload/$', upload, name='uploadify_upload'),
)

ビュー.py

from django.http import HttpResponse
import django.dispatch

upload_received = django.dispatch.Signal(providing_args=['data'])

def upload(request, *args, **kwargs):
    if request.method == 'POST':
        if request.FILES:
            upload_received.send(sender='uploadify', data=request.FILES['Filedata'])
    return HttpResponse('True') 

models.py

from django.db import models

def upload_received_handler(sender, data, **kwargs):
    if file:
        new_media = Media.objects.create(
            file = data,
            new_upload = True,
     )

    new_media.save()
    upload_received.connect(upload_received_handler, dispatch_uid='uploadify.media.upload_received')

class Media(models.Model):
    file = models.FileField(upload_to='images/upload/', null=True, blank=True)
    new_upload = models.BooleanField()

uploadify_tags.py

from django import template

from teste import settings 

register = template.Library()

@register.inclusion_tag('uploadify/multi_file_upload.html', takes_context=True)

    def multi_file_upload(context, upload_complete_url):
        """
        * filesUploaded - The total number of files uploaded
        * errors - The total number of errors while uploading
        * allBytesLoaded - The total number of bytes uploaded
        * speed - The average speed of all uploaded files
        """
        return {
            'upload_complete_url' : upload_complete_url,
            'uploadify_path' : settings.UPLOADIFY_PATH, # checar essa linha
            'upload_path' : settings.UPLOADIFY_UPLOAD_PATH,
        }    

テンプレート - uploadify/multi_file_upload.html

{% load uploadify_tags }{ multi_file_upload '/media/images/upload/' %}
<script type="text/javascript" src="{{ MEDIA_URL }}js/swfobject.js"></script>
<script type="text/javascript" src="{{ MEDIA_URL }}js/jquery.uploadify.js"></script>
<div id="uploadify" class="multi-file-upload"><input id="fileInput" name="fileInput" type="file" /></div>
<script type="text/javascript">// <![CDATA[
$(document).ready(function() {
    $('#fileInput').uploadify({
        'uploader'    : '/media/swf/uploadify.swf',
        'script'    : '{% url uploadify_upload %}',
        'cancelImg'   : '/media/images/uploadify-remove.png/',
        'auto'     : true,
        'folder'    : '/media/images/upload/',
        'multi'    : true,
        'onAllComplete' : allComplete
    });
});

function allComplete(event, data) {
 $('#uploadify').load('{{ upload_complete_url }}', {
  'filesUploaded'  : data.filesUploaded,
  'errorCount'   : data.errors,
  'allBytesLoaded'  : data.allBytesLoaded,
  'speed'     : data.speed
 });

 // raise custom event
 $('#uploadify') .trigger('allUploadsComplete', data);
}
// ]]</script>
4

3 に答える 3

1

しかし、それはまさにあなたがそれをするように言ったことです-あなたがPOSTしていないなら、/upload/ビューは単にTrueを返します。

{% multi_file_upload %}おそらくタグを含む、実際にレンダリングされたテンプレートを返したいと思います。

于 2010-05-12T18:47:11.590 に答える
0

次のサイトが役立つ場合があります: https ://github.com/tstone/django-uploadify/wiki

于 2011-02-22T18:22:03.963 に答える
0

テンプレートの1行目、タグが適切に閉じられていない/開いている必要があります

{% load uploadify_tags %}{% multi_file_upload '/myphotos/my-photos/'%}

そうは言っても、私は自分自身であらゆる種類のエラーを取得しています...主にcsrf検証で。tstone が csrf を除外していることがわかりますが、まだそこにあるはずだと考えています...そしてそうではありません。したがって、djangoのドキュメントhttps://docs.djangoproject.com/en/1.3/ref/contrib/csrf/#ajaxによると、csrfが機能するように、それを作成するためのものを追加しました。しかし、自分自身に投稿しようとしているため、405 が返されます。私は掘り続け、うまくいけば解決策を見つけます。

于 2012-02-28T05:02:38.953 に答える