次のことを達成するために Django モデルを設計する方法を知りたいです。
Road -> Category (required): Highway (select list)
Road -> Attribute (optional): Traffic -> Heavy + Moderate (checkboxes)
Road -> Attribute (optional): Condition -> Smooth + Rough + Average(checkboxes)
Road クラスの下に TRAFFIC_CHOICES、CONDITION_CHOICES を含めるのと、選択肢のセットごとに個別のクラスを作成するのとでは、一般的な Attribute クラスを作成するのとでは意味がありますか?
選択肢をチェックボックスとして表示するにはどうすればよいですか?
このモデルの最終目標は、「交通量のない滑らかな高速道路」などのクエリを作成できるようにすることです。
これが私の試みです:
class Category(models.Model):
CATEGORY_CHOICES = (
('highway', 'Highway'),
('parkway', 'Parkway'),
)
name = models.CharField(max_length=1, choices=CATEGORY_CHOICES, blank=False)
class Road(models.Model):
name = models.TextField(blank=False)
TRAFFIC_CHOICES = (
('moderate', 'Moderate'),
('busy', 'Busy'),
)
traffic = models.CharField(max_length=1, choices=TRAFFIC_CHOICES)
CONDITION_CHOICES = (
('smooth', 'Smooth'),
('rough', 'Rough'),
('average', 'Average'),
)
condition = models.CharField(max_length=1, choices=CONDITION_CHOICES)