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