Как избежать дублирования моделей в проекте django?


Я изучаю django, поэтому у меня много вопросов, и один из них-как я могу повторно использовать модель? я имею в виду, что модели живут в папке приложения, но некоторые модели точно такие же между двумя разными приложениями. Так стоит ли переписывать модель каждый раз, когда я пишу новое приложение?

3 3

3 ответа:

Да, это неправильно, когда у вас одинаковые имена ваших приложений Вы также можете использовать абстрактные модели


class CommonInfo(models.Model):
    name = models.CharField(max_length=100)
    age = models.PositiveIntegerField()

    class Meta:
        abstract = True

class Student(CommonInfo):
    home_group = models.CharField(max_length=5)

Если ваши модели точно одинаковы в разных приложениях, вы делаете что-то неправильно. Не забывайте, что приложение-это в основном набор моделей, и вы можете использовать модели одного приложения в другом приложении, просто импортировав их.

Можете ли вы привести пример двух приложений с абсолютно одинаковыми моделями?

Как повторно использовать модель .

Лучший способ повторного использования модели-наследовать родительский класс модели. Вот как вы должны это делать. Наследование от моделей.Модель.

from django.db import models
class trial(models.Model):
    # override the parent class methods here or define your own

Также убедитесь, что вы import Ваши модели приложений в соответствующих models.py файл.