私は次のモデルを持っています:
class Category(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField()
parent = models.ForeignKey('self', blank = True, null = True, related_name="children")
class Business(models.Model):
user = models.OneToOneField(User)
name = models.CharField(max_length=200)
slug = models.SlugField()
category = models.ForeignKey(Category)
city = models.ForeignKey(City)
modelFormを使用してビジネスを追加すると、リーフ以外のカテゴリが選択ボックスに表示されます。
たとえば、次のカテゴリ階層があるとします。
- Cars
-- Car Rental
-- Car Dealership
-- Mechanics
- Restaurants
-- Burgers
-- Chinese
-- Sushi
-- Pizza
-- Latin american
-- Mexican
-- Venezuelan
-- Argentinian
この階層では、車、レストラン、ラテンアメリカ以外のすべての選択肢が[カテゴリ]選択ボックスに表示されます。これらには子カテゴリがあるためです。