У меня есть модель категории с отношением родителей / детей к себе Для основной категории и подкатегорий:
class Place(models.Model):
name = models.CharField(_("name"), max_length=100)
categories = models.ManyToManyField("Category", verbose_name=_("categories"))
class Category(models.Model):
name = models.CharField(_("name"), max_length=100)
parent = models.ForeignKey('self', blank=True, null=True, related_name='child_set')
мне нужно предотвратить сирот, чтобы предотвратить подобные ошибки (в веб-интерфейсе администратора)
c_parent = Category(name='Restaurant')
c_parent.save()
c_child = Category(name="Japanese restaurant", parent=c_parent)
c_child.save()
place1 = Place (name="Planet sushi")
place1.save()
place1.categories.add(c_parent)
place1.categories.add(c_child)
Так что теперь у нас есть новое место под названием "Планета суши", это ресторан (корневая категория) и японский ресторан (подкатегория)
но я хочу предотвратить такие вещи:
place2 = Place (name="Tokyofood")
place2.save()
place2.categories.add(c_child)
потому что родитель не установлен или не является правильной родительской категорией
где я могу сделать проверку формы для администратора? и другие формы (потому что любой пользователь может добавить новое место и должен будет выбрать правильные категории для)