pl:python:metawmodelach
Różnice
Różnice między wybraną wersją a wersją aktualną.
| Poprzednia rewizja po obu stronachPoprzednia wersjaNowa wersja | Poprzednia wersja | ||
| pl:python:metawmodelach [2023/12/01 12:26] – [abstract] sindap | pl:python:metawmodelach [2023/12/08 09:06] (aktualna) – [abstract] sindap | ||
|---|---|---|---|
| Linia 29: | Linia 29: | ||
| Pamiętaj, że modele abstrakcyjne same w sobie nie tworzą tabel w bazie danych, więc nie są bezpośrednio używane do przechowywania danych. Są jedynie punktem wyjścia do dziedziczenia dla innych modeli, które mają związaną tabelę w bazie danych. | Pamiętaj, że modele abstrakcyjne same w sobie nie tworzą tabel w bazie danych, więc nie są bezpośrednio używane do przechowywania danych. Są jedynie punktem wyjścia do dziedziczenia dla innych modeli, które mają związaną tabelę w bazie danych. | ||
| + | |||
| + | Statystycznie najczęściej w takich modelach umieszczane są pola związane z zarządzaniem czasem, takie jak pola '' | ||
| + | |||
| + | Przykłady pól, które mogą być umieszczane w modelu abstrakcyjnym: | ||
| + | |||
| + | 1. **created_at: | ||
| + | 2. **modified_at: | ||
| + | 3. **created_by, | ||
| + | 4. **is_active: | ||
| + | 5. **description: | ||
| + | 6. **slug:** Unikalny identyfikator tekstowy, często używany w adresach URL.\\ | ||
| + | |||
| + | Poniżej przykład takiego wpisu: | ||
| + | |||
| + | <code python> | ||
| + | from django.db import models | ||
| + | from django.utils import timezone | ||
| + | |||
| + | class BaseModel(models.Model): | ||
| + | created_at = models.DateTimeField(auto_now_add=True, | ||
| + | modified_at = models.DateTimeField(auto_now=True, | ||
| + | |||
| + | class Meta: | ||
| + | abstract = True | ||
| + | |||
| + | class YourModel1(BaseModel): | ||
| + | # Twoje pola dla modelu 1 | ||
| + | |||
| + | class YourModel2(BaseModel): | ||
| + | # Twoje pola dla modelu 2 | ||
| + | </ | ||
| + | |||
| + | Ostateczny wybór pól zależy od konkretnego przypadku użycia i wymagań biznesowych. Modele abstrakcyjne są używane w celu uniknięcia powtarzalności kodu i ułatwienia zarządzania wspólnymi właściwościami między wieloma modelami. | ||
| ===== app_label ===== | ===== app_label ===== | ||
pl/python/metawmodelach.1701429960.txt.gz · ostatnio zmienione: przez sindap
