Как избежать дублирования моделей в проекте Django? - PullRequest
3 голосов
/ 12 октября 2010

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

Ответы [ 3 ]

3 голосов
/ 12 октября 2010

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

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

3 голосов
/ 12 октября 2010

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


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)

0 голосов
/ 12 октября 2010

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

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

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

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

...