Задать вопрос
@WebDev921

Как убрать поле при наследовании модели?

Как убрать лишнее поле при наследовании модели django, например:
class Model1(models.Model):
    product = models.ForeignKey('catalog.Product')
    name = models.CharField()
    comment = models.TextField()
    comment_2 = models.TextField()
    comment_3 = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)


class Model2(Model1, models.Model):
    product = None
    comment_4 = models.TextField()


В модели Model2 поле product не нужно, а все остальное такое же, и методы модели такие же. Можно ли как то убрать это поле?

Есть вариант создать еще одну абстрактную модель и он нее унаследовать и Model1 и Model2, но может есть другой способ
  • Вопрос задан
  • 450 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@MEDIOFF
Python Developer
Никак, не наследуйтесь в таком случае от Model1, либо вынисете общее в Model3, и отнаследуйтесь от нее в Model1 и Model2, а вообще лучше прочитайте что такое наследование в ООП и зачем оно придумано, это то же самое что вы от треугольника наследуйте от квадрата, типо все то же самое, но вам одна координата не нужна, это в корне не верный подход который приведет к множеству проблем в будущем
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@RqL
Создайте абстрактную модель с общими полями и наследуйте от неё модели, добавляя уникальные поля.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы