Narzędzia użytkownika

Narzędzia witryny


pl:python:metawmodelach

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
pl:python:metawmodelach [2023/12/01 12:26] – [abstract] sindappl: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 ''created_at'' (data utworzenia) i ''modified_at'' (data ostatniej modyfikacji). Ponadto, modele abstrakcyjne mogą zawierać inne wspólne pola, które mają sens dla wielu modeli w danym kontekście biznesowym.
 +
 +Przykłady pól, które mogą być umieszczane w modelu abstrakcyjnym:
 +
 +1. **created_at:** Data utworzenia rekordu.\\
 +2. **modified_at:** Data ostatniej modyfikacji rekordu.\\
 +3. **created_by, modified_by:** Oznaczające użytkownika, który utworzył lub ostatnio zmodyfikował rekord.\\
 +4. **is_active:** Pole logiczne określające, czy rekord jest aktywny czy nie.\\
 +5. **description:** Pole tekstowe zawierające opis rekordu.\\
 +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, verbose_name='Created At')
 +    modified_at = models.DateTimeField(auto_now=True, verbose_name='Modified At')
 +
 +    class Meta:
 +        abstract = True
 +
 +class YourModel1(BaseModel):
 +    # Twoje pola dla modelu 1
 +
 +class YourModel2(BaseModel):
 +    # Twoje pola dla modelu 2
 +</code>
 +
 +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: 2023/12/01 12:26 przez sindap

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki