私はウェブアプリやデータベース全般に不慣れなので、これはばかげた質問かもしれません。モデルの別のインスタンス (その親) のプライマリ ID を指すフィールドを持つモデル ("CategoryModel") を作成したいと考えています。
class CategoryModel(models.Model):
parent = models.ForeignKey(CategoryModel)
どうすればいいですか?ありがとう!
私はウェブアプリやデータベース全般に不慣れなので、これはばかげた質問かもしれません。モデルの別のインスタンス (その親) のプライマリ ID を指すフィールドを持つモデル ("CategoryModel") を作成したいと考えています。
class CategoryModel(models.Model):
parent = models.ForeignKey(CategoryModel)
どうすればいいですか?ありがとう!
モデルの名前を文字列として ForeignKey に渡すことができ、正しいことを行います。
そう:
parent = models.ForeignKey("CategoryModel")
または、文字列「self」を使用できます
parent = models.ForeignKey("self")
文字列 'self' を使用して、自己参照を示すことができます。
class CategoryModel(models.Model):
parent = models.ForeignKey('self')
https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey
あなたも設定null=True
してblank=True
class CategoryModel(models.Model):
parent = models.ForeignKey("self", on_delete=models.CASCADE, null=True, blank=True)
null=True
、データベース
blank=True
で許可する 、フォーム検証で許可する
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/