Можно ли использовать экземпляры прокси-модели для внешнего ключа?
Существуют ли какие-либо недостатки или риски, связанные с этим?
Пример кода:
base_models.py
class BaseWidget(models.Model):
name = models.CharField(max_length=100)
code = models.CharField(max_length=100)
class BasePart(models.Model):
name = models.CharField(max_length=100)
code = models.CharField(max_length=100)
widget = models.ForeignKey(BaseWidget, related_name="parts")
models.py
from base_models import BaseWidget, BasePart
class Part(BasePart):
class Meta:
proxy = True
class Widget(BaseWidget):
def replace_part(self, old_code, new_code):
self.parts.filter(code=old_code).delete()
self.parts.add(Part.objects.get(code=new_code))
class Meta:
proxy = True
Обратите внимание, что в replace_part
добавляется Part
, а не BasePart
.Это то, что мне интересно - приемлемо ли это для Джанго и, если да, есть ли какие-либо скрытые недостатки или опасности для этого.