django many to many validation when add()

Posted by Julien on Stack Overflow See other posts from Stack Overflow or by Julien
Published on 2010-02-04T15:54:55Z Indexed on 2010/05/26 19:01 UTC
Read the original article Hit count: 235

Filed under:
|

Hi

i have a Category model with parent/child self relation For primary category and sub categories :

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')

i need to prevent orphans, to prevent this kind of errors (in admin web interface)

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)

So now we have a new Place called "Planet sushi", it's a Restaurant (root category), and a Japanese Restaurant (sub category)

but i want to prevent this kind of things :

place2 = Place (name="Tokyofood")
place2.save()

place2.categories.add(c_child)

because parent is not set, or is not the correct parent category

where can i do form validation for the admin ? and other forms (because any user can add a new place and will have to choose correct categories for)

© Stack Overflow or respective owner

Related posts about django

Related posts about many-to-many