from django.db import models


class ParentManager(models.Manager):
    def get_by_natural_key(self, parent_data):
        return self.get(parent_data=parent_data)


class Parent(models.Model):
    parent_data = models.CharField(max_length=30, unique=True)
    parent_m2m = models.ManyToManyField("self")

    objects = ParentManager()

    def natural_key(self):
        return (self.parent_data,)


class Child(Parent):
    child_data = models.CharField(max_length=30, unique=True)