Apa tujuan apps.py di Django 1.9?


Jawaban:


136

Tujuan apps.pyfile:

File ini dibuat untuk membantu pengguna memasukkan konfigurasi aplikasi apa pun untuk aplikasi. Dengan ini, Anda dapat mengonfigurasi beberapa atribut aplikasi.

Dari Application Configurationdokumentasi:

Objek konfigurasi aplikasi menyimpan metadata untuk suatu aplikasi. Beberapa atribut dapat dikonfigurasi di subkelas AppConfig. Lainnya diatur oleh Django dan hanya-baca.

Contoh dari dokumen:

Katakanlah Anda sedang membuat aplikasi pluggable bernama "Rock ’n’ roll", lalu untuk memberikan nama yang tepat untuk admin kita bisa melakukan hal berikut:

Dalam rock_n_rollaplikasi, kami membuat RockNRollConfigkelas AppConfig.

#rock_n_roll/apps.py
from django.apps import AppConfig

class RockNRollConfig(AppConfig): # Our app config class
    name = 'rock_n_roll'
    verbose_name = "Rock ’n’ roll"

Kita bisa membuat aplikasi Anda memuat ini AppConfigsubclass secara default dengan menentukan default_app_configdalam rock_n_roll/__init__.pyberkas.

# rock_n_roll/__init__.py    
default_app_config = 'rock_n_roll.apps.RockNRollConfig'

Melakukan ini akan menyebabkan RockNRollConfigdigunakan ketika INSTALLED_APPShanya berisi 'rock_n_roll'. Ini memungkinkan kami memanfaatkan AppConfigfitur tanpa mengharuskan pengguna memperbarui INSTALLED_APPSpengaturannya.


Sayangnya saya tidak mendapatkan jawaban Anda
hspandher

2
without requiring our users to update their INSTALLED_APPS setting.: Apa artinya ini: Pada dasarnya jika saya tidak melakukannya default_app_config = 'rock_n_roll.apps.RockNRollConfig'maka saya harus menyebutkan dalam INSTALLED_APPSdefault_app_config = 'rock_n_roll.apps.RockNRollConfig'
Santhosh Yedidi

15

Ini adalah tempat yang disarankan untuk meletakkan konfigurasi aplikasi Anda . Fitur ini sudah ada di sini sejak 1.7, tetapi untuk mempromosikan penggunaannya dan memungkinkan konfigurasi yang lebih mudah, apps.pyfile telah ditambahkan ke templat aplikasi default.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.