Я хотел бы смешать поле с существующей моделью, которую я бы не хотел редактировать (это происходит от стороннего проекта, и я бы предпочел оставить проект без изменений).Я создал простой пример, который иллюстрирует то, что я пытаюсь, но не могу сделать:
В пустом проекте Django я создал приложения app1 и app2 (они находятся в таком порядке в настройках).Они выглядят следующим образом:
app1.models.py:
from django.db import models
from app2.models import BlogPost
class BlogPostExtend(models.Model):
custom_field_name = models.CharField(max_length=200)
class Meta:
abstract = True
BlogPost.__bases__ = (BlogPostExtend,)+BlogPost.__bases__ # this prevents MRO error
app2.models.py:
from django.db import models
class BlogPost(models.Model):
field_name = models.CharField(max_length=100)
К сожалению, это не приводит к тому, что custom_field_name будетсозданный в базе данных, когда я синхронизирую, хотя в командной строке, если я набираю BlogPost.custom_field_name, он распознает его как CharField.Я знаю, что в этом простом случае я мог бы наследовать BlogPost от BlogPostExtend, но в реальном случае я не могу редактировать BlogPost.
Это очень упрощенный пример, но он иллюстрирует то, что я пытаюсь сделать.
Спасибо!