Jaki jest cel apps.py w Django 1.9?


Odpowiedzi:


138

Cel apps.pyakt:

Ten plik jest tworzony, aby pomóc użytkownikowi dołączyć dowolną konfigurację aplikacji dla aplikacji. Używając tego, możesz skonfigurować niektóre atrybuty aplikacji.

Z Application Configurationdokumentacji:

Obiekty konfiguracji aplikacji przechowują metadane dla aplikacji. Niektóre atrybuty można skonfigurować w podklasach AppConfig. Inne są ustawiane przez Django i tylko do odczytu.

Przykład z dokumentów:

Załóżmy, że tworzysz aplikację o nazwie "Rock ’n’ roll", którą można podłączyć , a następnie w celu podania właściwej nazwy administratora możemy wykonać następujące czynności:

W rock_n_rollaplikacji tworzymy RockNRollConfigklasę 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"

Możemy sprawić, że Twoja aplikacja będzie ładować tę AppConfigpodklasę domyślnie, określając default_app_configw rock_n_roll/__init__.pypliku.

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

Spowoduje to RockNRollConfigużycie, gdy INSTALLED_APPStylko zawiera 'rock_n_roll'. Dzięki temu możemy korzystać z AppConfigfunkcji bez konieczności aktualizowania INSTALLED_APPSustawień przez naszych użytkowników .


1
Niestety nie dostałem twojej odpowiedzi
hspandher

3
without requiring our users to update their INSTALLED_APPS setting.: Co to oznacza: Zasadniczo, jeśli nie, default_app_config = 'rock_n_roll.apps.RockNRollConfig'muszę wspomnieć w INSTALLED_APPSdefault_app_config = 'rock_n_roll.apps.RockNRollConfig'
Santhosh Yedidi

15

Jest to zalecane miejsce do umieszczenia konfiguracji aplikacji . Ta funkcja jest dostępna od 1.7, ale aby promować jej użycie i umożliwić łatwiejszą konfigurację, apps.pyplik został dodany do domyślnego szablonu aplikacji.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.