2016-01-08 19 views
8

Ich arbeite an einem Django-Projekt mit PyCharm. Leider löscht PyCharm nicht die Vorlagen-Tags, die ich in meinen Vorlagen verwenden möchte.PyCharm - Ungelöste Bibliothek 'Staticfiles'

{% load staticfiles %} 

Das Projekt läuft innerhalb einer Ubuntu VM über Vagrant. Die Run-Konfiguration kennt die Virtualenv, die ich in der VM verwende (Remote Interpreter Setup).

Aussehen Meine Einstellungen wie folgt aus:

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.humanize', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.sites', 
    'django.contrib.flatpages', 
    'django_extensions'] 

INSTALLED_APPS += get_core_apps(['myapp.dashboard') 

STATICFILES_FINDERS = (
    'compressor.finders.CompressorFinder', 
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
    'compressor.finders.CompressorFinder', 
) 

STATIC_URL = '/static/' 

BASE_DIR = os.path.dirname(os.path.abspath(__file__)) 

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, '../../../../myfolder/static'), 
) 

Noch ich die Warnung Unresolved library 'staticfiles' bekommen. Es zeigt dasselbe Verhalten auch andere Template-Tags. Könnte die dynamische Erstellung des STATICFILES_DIRS das Problem sein? Wie könnte ich das lösen?

+0

Dies löst meine Frage nicht. Es geht nicht nur um die statischen Dateien, sondern auch um andere Template-Tags. – RodrigoDela

+0

Sind Sie im DEBUG-Modus? – gerosalesc

+0

Ja, 'DEBUG = True' – RodrigoDela

Antwort

6

Es stellte sich heraus, dass die dynamische Erstellung von INSTALLED_APPS PyCharm irgendwie verwirrt. Bestimmte Abhängigkeiten wie template_tags können nicht aufgelöst werden, wenn diese dynamisch erstellt werden. Scheint so, als ob man sich entscheiden muss, ob man eine nette Code-Navigation oder statische INSTALLED_APPS hat.

+0

Sie haben recht: ein einfacher Import von 'INSTALLED_APPS'-Laufwerken PyCharm verrückt. –

+0

Ich bin derzeit schlechter dran: Umwandlung von 'settings.py' in ein Modul (zB Ordnernamen' settings' mit '__init__py' Datei) und Kopieren/Einfügen des alten' settings.py' Codes in eine andere Datei in den Ordner ' Einstellungen 'mit der richtigen Berechnung von' BASE_DIR' Laufwerke PyCharm total verrückt -> Sie sind gezwungen, alle Ihre Konfiguration zu haben ** nur ** in einer Datei 'settings.py' Ende der Geschichte ... –

7

In meinem Fall passierte dies, als PyCharm die Datei settings.py nicht finden konnte. Dies weil ich - local_setting, prod_setting usw. habe. Also gehe ich zu Datei -> Einstellungen -> Sprache & Framworks -> Django -> Einstellungen und wähle entsprechende Datei mit der Einstellung django project.

+0

Vielen Dank für Ihre Antwort, aber diese Einstellung ist bereits für mein Projekt konfiguriert. – RodrigoDela

+1

Das war das Problem in meinem Fall. – Ishan

+0

Vergessen Sie nicht, das Projekt neu zu laden, nachdem Sie auf die richtigen settings.py gerichtet haben. –

3

Es sieht so aus, als ob PyCharm nach der letzten Zuweisung zu INSTALLED_APPS sucht, um Vorlagen-Tags zu finden. Ich habe in ein ähnliches Problem laufen und in der Lage sein zu arbeiten, um es auf dieser Zugabe nach dynamisch dem realen INSTALLED_APPS Erzeugung:

if False: 
    INSTALLED_APPS = (
     'django.contrib.auth', 
     'django.contrib.contenttypes', 
     'django.contrib.sessions', 
     'django.contrib.sites', 
     'django.contrib.staticfiles', 
     'autocomplete_light', 
     'django.contrib.admin', 
     'django.contrib.humanize', 
     'comunes', 
     'listados', 
     'gescomercial', 
     'contabilidad', 
     'compras', 
     'almacen') 

Nicht schön, aber da dies settings.py nur in der Entwicklungsmaschine verwendet wird, kann ich leben mit es.