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

Есть вот такой простой миксин, который я использую в формах. Как его можно сделать универсальным, чтобы его не приходилось дублировать и использовать для других приложений в проекте? то есть, чтобы мне выдавало ошибку "Статус с таким именем уже существует" или "Задача с таким именем уже существует"? Может есть конечно другие варианты как можно подобное сделать, а не через миксин?

class UniqueNameErrorMixin:
    def clean_name(self):
        name = self.cleaned_data['name']
        if Label.objects.filter(name=name).exists():
            raise ValidationError('Метка с таким именем уже существует.')
        return name
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
fox_12
@fox_12 Куратор тега Django
Расставляю биты, управляю заряженными частицами
Что-то вроде такого, если вас правильно понял:
class UniqueNameErrorMixin:

    def clean_name(self):
        name = self.cleaned_data.get('name')
        if name and hasattr(self.model, 'name') and self.model.objects.filter(name=name).exists():
            raise ValidationError('{self.model._meta.verbose_name} с таким именем уже существует.')
        return name
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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