답변:
'self'문자열을 사용하여 자체 참조를 표시 할 수 있습니다.
class CategoryModel(models.Model):
parent = models.ForeignKey('self')
https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey
self
모델 속성을 정의 할 때 존재하지 않는다는 것입니다. 프로퍼티가 __init__()
다른 메소드의 일부로 정의 된 경우, self
항상 파이썬 클래스의 인스턴스 메소드에 대한 첫 번째 위치 인수와 같습니다.
https://books.agiliq.com/projects/django-orm-cookbook/en/latest/self_fk.html
class Employee(models.Model):
manager = models.ForeignKey('self', on_delete=models.CASCADE)
또는
class Employee(models.Model):
manager = models.ForeignKey("app.Employee", on_delete=models.CASCADE)
https://stackabuse.com/recursive-model-relationships-in-django/
parent
대신parentId
이후my_category_model.parent
의 인스턴스가 될 것입니다CategoryModel
. Django는parent_id
관련 모델의 기본 키가 될 멤버 를 자동으로 만듭니다 .