Django नया संस्करण 3.1, सेटिंग फ़ाइल में कुछ बदलाव हैं

Aug 16 2020

Django के नए संस्करण 3.1 पर, सेटिंग फ़ाइल में कुछ बदलाव हैं, और मैं यह पूछने आया था कि मुझे अपनी स्थिर फ़ाइलों को सेट करने के लिए कैसे आगे बढ़ना है? जिस तरह से मैं आमतौर पर अधिक काम नहीं करता है।

अंतिम संस्करण:

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

संस्करण 3.1:

from pathlib import Path
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent

मैं आमतौर पर अपनी स्थिर फाइलें इस तरह सेट करता हूं:

STATIC_URL = '/static/'
MEDIA_URL = '/media/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media_root')

अगर मैं import osवसीयत को सम्मिलित करता हूं , लेकिन क्या यह सही अभ्यास है? इसे सेट करने के लिए सबसे अच्छा अभ्यास क्या है? धन्यवाद?

जवाब

6 Roham Aug 16 2020 at 18:59

यह परिवर्तन आपके लिए अपने STATICऔर MEDIAचर को परिभाषित करना बहुत आसान बनाता है । आपको osइस उद्देश्य के लिए आयात करने की भी आवश्यकता नहीं है और आपको अपनी कोड में निम्नलिखित कोड जोड़ने की आवश्यकता है settings.py:

BASE_DIR = Path(__file__).resolve(strict=True).parent.parent # which shows the root directory of your project

STATIC_ROOT = BASE_DIR / 'static' # is equal to os.path.join(BASE_DIR, 'static/')
STATIC_URL = '/static/'

MEDIA_ROOT = BASE_DIR / 'media' # is equal to os.path.join(BASE_DIR, 'media/')
MEDIA_URL = '/media/'
Ankit Nov 17 2020 at 13:44
STATIC_ROOT = BASE_DIR.parent / "static_cdn"

इसे आज़माएं यदि आप अपने STATIC_ROOT को पर्यावरण निर्देशिका के अंदर जोड़ना चाहते हैं