Django

Sygnały Django

Wbudowane sygnały, pre_save, post_save, pre_delete, niestandardowe sygnały, receivery, najlepsze praktyki dotyczące sygnałów

18 pytań z rozmów·
Mid-Level
1

Czym jest sygnał w Django?

Odpowiedź

Sygnał to mechanizm pozwalający, aby określone części aplikacji były powiadamiane, gdy w innym miejscu frameworka wystąpią konkretne akcje. Sygnały umożliwiają rozdzielenie (decoupling) nadawcy zdarzenia od receiverów, które reagują na to zdarzenie. Django udostępnia kilka wbudowanych sygnałów, takich jak pre_save, post_save, pre_delete i post_delete dla operacji na modelach.

2

Który sygnał jest emitowany tuż przed zapisaniem obiektu do bazy danych?

Odpowiedź

Sygnał pre_save jest emitowany przed wykonaniem metody save() modelu. Pozwala wprowadzić zmiany w instancji przed jej zapisaniem, na przykład obliczyć wartości pochodne lub znormalizować dane. Ten sygnał jest przydatny, ponieważ jest wywoływany zarówno przy tworzeniu, jak i przy aktualizacji obiektu.

3

Którego dekoratora należy użyć, aby połączyć funkcję receiver z sygnałem Django?

Odpowiedź

Dekorator @receiver z django.dispatch pozwala połączyć funkcję z sygnałem w sposób deklaratywny. Przyjmuje jako parametr sygnał, którego ma nasłuchiwać, oraz opcjonalnie sender do filtrowania nadawców. To podejście jest bardziej czytelne niż metoda connect() i ułatwia utrzymanie kodu.

4

Który argument sygnału post_save pozwala odróżnić utworzenie od aktualizacji?

5

Gdzie zaleca się umieszczać kod receiverów sygnałów w aplikacji Django?

+15 pytań z rozmów

Opanuj Django na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo