¿Cómo crear una clase de modelo abstracto en Django?

Django es un marco web Python de alto nivel que fomenta un desarrollo rápido y un diseño limpio y pragmático. Creado por desarrolladores experimentados, se encarga de gran parte de las molestias del desarrollo web, por lo que puede concentrarse en escribir su aplicación sin necesidad de reinventar la rueda. Es gratis y de código abierto.

¿Qué es la herencia modelo?

La herencia de modelos en Django funciona casi de manera idéntica a la forma en que funciona la herencia de clases normal en python. En este artículo, giraremos en torno a cómo crear una clase base abstracta en Django Models.

Clase base abstracta: –

La clase base abstracta es útil cuando desea poner información común en una serie de otros modelos. Escribes tu clase base y pones abstract = True en la Meta Class. Supongamos que tiene dos modelos Estudiante y Profesor.

modelos.py

Python3

from django.db import models
  
  
class Student(models.Model):  # STUDENT
    name = models.CharField(max_length=100)
    rollno = models.IntergerField()
  
  
class Teacher(models.Model):  # TEACHER
    name = models.CharField(max_length=100)
    ID = models.IntergerField()

Entonces, ¿ha notado que un nombre de campo es común en ambos modelos?

Entonces, en lugar de agregar campos comunes en ambos modelos, creamos otro modelo y colocamos esos campos comunes en ese modelo.

modelos.py

Python3

from django.db import models
  
  
class common(models.Model):  # COMM0N
    name = models.CharField(max_length=100)
  
    class Meta:
        abstract = True

Así que aquí creo un modelo común y pongo los campos comunes en ese modelo.

Ponga abstract = True en la clase Meta. Después de establecer abstract True, ahora se convierte en una clase abstracta, no en un modelo, por lo que ahora no puede generar una tabla de base de datos.

Python3

class Student(common):  # STUDENT
    rollno = models.IntegerField()
  
  
class Teacher(common):  # TEACHER
    ID = models.IntegerField()

ubuntu

python3 manage.py makemigrations
python3 manage.py migrate

Ahora puede heredar el campo de nombre común tanto en Estudiante como en Profesor. Al igual que la herencia normal de Python.

Producción :

Publicación traducida automáticamente

Artículo escrito por vivekpisal12345 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *