Slavus programing blog

My random programing (and other) tips.

Django I Dodatne Aplikacije S Svojom Putanjom

| Comments

Ovo je prvi članak iz serija Django u Hrvata.

Ovdje ću opisati jedan kratki trik koji ja koristim da bi u svoj Django projekt ubacio neku od već gotovih Django aplikacija koje postoje u bespućima code.google.com i github-a.

Moja navika je sve dodatne aplikacije staviti u poseban direktorij lib izvan django projekta. No onda imam problem dodavanja skinutih aplikacija u PYTHONPATH. Prvobitno riješenje mi je bilo postaviti PYTHONPATH varijablu okoline ljusci. No ovaj pristup se pokazao nedvovoljno fleksibilan (neprenosivost putanja na različitim računalima, različite ljuske na različitim operacijskim sustavima).

Nakon nekoliko iteracija došao sam do relativno dobrog rješenja. U korijenskom direktoriju Django projekta napravim novu python datoteku, npr. python_path_for_libs.py, i u njega upišemo nešto slično ovome ispod:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from sys import path
from os.path import dirname, abspath
BASEDIR = abspath( dirname(__file__)+"/../../") + "/"

APP_DIRS = (
    # Put strings here like ''
    'django-debug-toolbar',
    'django_extensions',
    'django-evolution',
    'django-robots',
    'django-batchadmin',
)

for app_dir in APP_DIRS:
    if BASEDIR+'lib/'+app_dir not in path:
        path.insert(0, BASEDIR+'lib/'+app_dir)

E sad što tu imamo:

1
2
3
4
5
6
7
8
APP_DIRS = (
    # Put strings here like ''
    'django-debug-toolbar',
    'django_extensions',
    'django-evolution',
    'django-robots',
    'django-batchadmin',
)

APP_DIRS je popis direktorija koji sadrže aplikacije koje će biti ubačene u PYTHONPATH. Kao što vidimo ja ovdje koristim debug-toolbar , django_extensions koje bih preporučio svima. Nakon što podesite sve svoje aplikacije iz lib direktorija u APP_DIRS, sve što vam preostaje da na početak vaše settings.py datoteke dodate liniju:

1
import python_path_for_libs

I to je to, sve uredno radi.

Comments