我想知道我該怎麼設計我的Django模型,以實現以下目標:Django:如何設計以下模型?
Road -> Category (required): Highway (select list)
Road -> Attribute (optional): Traffic -> Heavy + Moderate (checkboxes)
Road -> Attribute (optional): Condition -> Smooth + Rough + Average(checkboxes)
是否有意義,包括TRAFFIC_CHOICES,CONDITION_CHOICES的道班VS下爲每個組選擇VS創建單獨的類創建一個通用的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)
謝謝你的答案和提示。不幸的是,道路屬性必須是複選框。一條道路可以有多個屬性(例如一半平滑和一半粗糙) – howtodothis
那麼,這種方式會打敗「變化」選項的目的,但我會更新我的答案以包含複選框的說明。 –
我應該沒有使用「變化」。它只是一個佔位符。我會糾正它,以減少混淆。 – howtodothis