Здравствуйте! Вопрос касается нюансов следования принципам SOLID в Django.
Есть модель (схематично) с методом
class Product(models.Model):
name = models.CharField()
type = models.CharField(choices=PRODUCT_CHOICES)
def process_new_order(self, *args, **kwargs):
if self.type == 'type one':
""" do order """
if self.type == 'type two':
""" do another order """
В целом все классно, все отлично выглядит во формах и вьюшках но муляет следующее:
- По принципу открытости/закрытости мы должны избегать проверки типов
То есть логично было бы разделить модель на две прокси модели и преопределить каждой метод, но тогда в формах и вьюшках надо как то определять нужный класс модели. Или возможно нужно другие модели проксировать? или чтото другое.
Как вы считаете правильно можно организовать такого типа код?