def formfield(self, **kwargs):
        kwargs.setdefault('form_class', TreeNodeChoiceField)
        return super(TreeForeignKey, self).formfield(**kwargs)
Use MPTT's ``TreeNodeChoiceField``
dataset/ETHPy150Open django-mptt/django-mptt/mptt/fields.py/TreeForeignKey.formfield