2016-03-18 8 views
2

gereklidir:Django kompresörü, sözlük güncelleme sırası elemanını atar # 0, 9 uzunluğuna sahiptir; 2 Django-kompresör 1.4 kullanıyorum ve şu hata için asıl nedenini bulmaya saatlerce mücadele etmekte olan

dictionary update sequence element #0 has length 9; 2 is required 

{% compress %} etiketlerinin doğru çalışması ihtiva Diğer tüm şablonlar ve hata yalnızca bir şablonda oluşur.

şablon kodu:

./manage.py compress 

sonuç ne olursa olsun aynıdır Senaryonun veya akan aracılığıyla çalıştırırsanız:

{% load compress %} 

{% compress js %} 
<script src='{{ STATIC_URL }}trove/js/ZeroClipboard.js' type='text/javascript' charset='utf-8'></script> 
<script src='{{ STATIC_URL }}trove/js/clipboard.js' type='text/javascript' charset='utf-8'></script> 
<script src='{{ STATIC_URL }}trove/js/jquery.tipsy.js' type='text/javascript' charset="utf-8"></script> 
{% endcompress %} 

Ben çağıran bir komut dosyası aracılığıyla kompres komutunu kullan Deniz kabuğu.

Kompresör kodunu incelemeyi denedim ancak tam olarak ne aradığımı tam olarak bilmiyorum, çünkü hatanın ne anlama geldiğini gerçekten bilmiyorum.

Web'de django ile ilgili bir sorun olduğunu belirten makaleler okudum ancak django veya django-compressor'u yükseltme seçeneğim yok.

Umarım birisi bu sorunu düzeltmeme yardımcı olabilir. Benim settings.py bir sorunu olduğunu öğrendim nav

+0

Django sürümünüz nedir? – Selcuk

+0

@Selcuk benim versiyonum 1.6. – navanitachora

+0

1.9.x'ten önce Django sürümleriyle bilinen bir hata var. Yükseltemiyorsanız, bir geçici çözüm bulmaya çalışın. [Bu sayı] bölümüne bakın (https://github.com/django-compressor/django-compressor/issues/706) – Selcuk

cevap

2

fazla araştırma sonrasında

sayesinde.

Benim settings.py vardı: İlk başlığın sonra virgül yoktur

COMPRESS_PRECOMPILERS = (
    ('text/scss', 'django_pyscss.compressor.DjangoScssFilter') 
) 

Not söyledi.

COMPRESS_PRECOMPILERS = (
    ('text/scss', 'django_pyscss.compressor.DjangoScssFilter'), 
) 

virgül hatası yok etti ve beklendiği gibi dosyalar sıkıştırılmış var ekleme: Doğru sözdizimi aşağıdaki gibidir olduğunu.

Bu virgül olmadan, Python, bir parantez yerine parantezleri gruplandırma olarak dış parantezleri okur. Bu durum, sadece tuple'da bir madde olduğunda ortaya çıkar. Bu durumdan kaçınmak için, bazı millet dizilerini yerine listeleri kullanmayı tercih:

COMPRESS_PRECOMPILERS = [ 
    ('text/scss', 'django_pyscss.compressor.DjangoScssFilter') 
] 

Bu şekilde, COMPRESS_PRECOMPILERS hep liste olarak okunur ve her zaman Django'ya kabul edilebilir olacaktır.

+0

Bu benim için de çalışıyor! Çok garip bir hata ... – modulitos

İlgili konular