Introducció

En aquest tema, aprendrem sobre els models en Django i com interactuen amb les bases de dades. Els models són una part fonamental de qualsevol aplicació Django, ja que defineixen l'estructura de les dades i proporcionen una interfície per interactuar amb la base de dades.

Objectius

  • Comprendre què són els models en Django.
  • Aprendre a definir models.
  • Entendre com es mapegen els models a les taules de la base de dades.
  • Aprendre a realitzar operacions bàsiques amb models.

Què és un Model?

Un model en Django és una classe que representa una taula en la base de dades. Cada atribut de la classe correspon a una columna de la taula. Django proporciona una API per interactuar amb la base de dades de manera senzilla i eficient.

Definició de Models

Exemple de Model

from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    published_date = models.DateTimeField(auto_now_add=True)
    author = models.CharField(max_length=50)

    def __str__(self):
        return self.title

Explicació del Codi

  • title: Un camp de text amb una longitud màxima de 100 caràcters.
  • content: Un camp de text llarg.
  • published_date: Un camp de data i hora que s'estableix automàticament quan es crea l'article.
  • author: Un camp de text amb una longitud màxima de 50 caràcters.
  • __str__: Un mètode que retorna una representació en cadena de l'objecte, útil per a la interfície d'administració i altres llocs on es mostren objectes.

Migracions

Les migracions són una manera de propagar els canvis que fem als models a la base de dades. Django proporciona eines per crear i aplicar migracions de manera senzilla.

Creació de Migracions

Després de definir o modificar models, hem de crear una migració:

python manage.py makemigrations

Aplicació de Migracions

Per aplicar les migracions i actualitzar la base de dades:

python manage.py migrate

Operacions Bàsiques amb Models

Creació d'Objectes

article = Article(title="Primer Article", content="Aquest és el contingut del primer article.", author="Joan")
article.save()

Lectura d'Objectes

articles = Article.objects.all()
primer_article = Article.objects.get(id=1)

Actualització d'Objectes

article = Article.objects.get(id=1)
article.title = "Títol Actualitzat"
article.save()

Eliminació d'Objectes

article = Article.objects.get(id=1)
article.delete()

Exercicis Pràctics

Exercici 1: Crear un Model de Comentari

Defineix un model Comment amb els següents camps:

  • article: Una clau forana a l'article.
  • author: Un camp de text amb una longitud màxima de 50 caràcters.
  • content: Un camp de text llarg.
  • published_date: Un camp de data i hora que s'estableix automàticament quan es crea el comentari.

Solució

from django.db import models

class Comment(models.Model):
    article = models.ForeignKey(Article, on_delete=models.CASCADE)
    author = models.CharField(max_length=50)
    content = models.TextField()
    published_date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return f"Comentari de {self.author} a {self.article.title}"

Exercici 2: Realitzar Operacions amb el Model de Comentari

  1. Crea un comentari per a un article existent.
  2. Llegeix tots els comentaris d'un article.
  3. Actualitza el contingut d'un comentari.
  4. Elimina un comentari.

Solució

# 1. Crear un comentari
article = Article.objects.get(id=1)
comment = Comment(article=article, author="Maria", content="Aquest és un comentari.")
comment.save()

# 2. Llegir tots els comentaris d'un article
comments = Comment.objects.filter(article=article)

# 3. Actualitzar el contingut d'un comentari
comment = Comment.objects.get(id=1)
comment.content = "Contingut actualitzat del comentari."
comment.save()

# 4. Eliminar un comentari
comment = Comment.objects.get(id=1)
comment.delete()

Conclusió

En aquesta secció, hem après què són els models en Django, com definir-los, i com realitzar operacions bàsiques amb ells. Els models són una part essencial de qualsevol aplicació Django, ja que defineixen l'estructura de les dades i proporcionen una interfície per interactuar amb la base de dades. En el proper mòdul, explorarem la interfície d'administració de Django, que ens permet gestionar fàcilment els nostres models i dades.

© Copyright 2024. Tots els drets reservats