IT박스

장고 자기 참조 외래 키

itboxs 2020. 6. 18. 21:34
반응형

장고 자기 참조 외래 키


나는 일반적으로 webapps 및 데이터베이스에 익숙하지 않으므로 이것이 멍청한 질문 일 수 있습니다. 모델의 다른 인스턴스 (부모)의 기본 ID를 가리키는 필드로 모델 ( "CategoryModel")을 만들고 싶습니다.

class CategoryModel(models.Model):
    parentId = models.ForeignKey(CategoryModel)

어떻게해야합니까? 감사!


모델 이름을 ForeignKey에 문자열로 전달하면 올바른 작업을 수행합니다.

그래서:

parentId = models.ForeignKey("CategoryModel")

또는 "self"라는 문자열을 사용할 수 있습니다

parentId = models.ForeignKey("self")

'self'문자열을 사용하여 자체 참조를 표시 할 수 있습니다.

class CategoryModel(models.Model):
    parentId = models.ForeignKey('self')

https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey


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/

참고 URL : https://stackoverflow.com/questions/15285626/django-self-referential-foreign-key

반응형