我想弄清楚如何設計我的模型。我一直在查閱文檔,最終看起來應該使用「through」屬性,但我無法弄清楚如何讓它按照我的想法工作。搞清楚如何設計我的模型,並使用「通過」
如果有人可以看一看並指出我錯過了什麼,那會非常有幫助。下面粘貼了我的模型。
這就是我要做的:
1)具有服務器類型的列表
2)每個服務器類型需要有提供給特定的服務器類型
不同部位3)資產具有FK到服務器模型,其具有到特定於該服務器類型的部分的M2M。
我的問題是,每個「資產」如何存儲特定於該「資產」的每個「部分」的元數據?例如,每個「資產」應該爲其分配的部分擁有自己的最後使用的數據。
謝謝! :)
class Part(models.Model):
part_description = models.CharField(max_length=30,unique=1)
last_used = models.CharField(max_length=30)
def __unicode__(self):
return self.part_description
class ServerModel(models.Model):
server_model = models.CharField(max_length=30,unique=1)
parts = models.ManyToManyField(Part)
def __unicode__(self):
return self.server_model
class Asset(models.Model):
server_model = models.ForeignKey(ServerModel)
serial_number = models.CharField(max_length=10,unique=1)
def __unicode__(self):
return self.server_model.server_model
編輯: 謝謝你的幫助!但是,我可能沒有清楚地解釋我自己。這可能是我混亂的模型名稱。
示例: ServerModel存儲正在使用的服務器類型,例如「Dell Server 2000」。
的 「戴爾服務器2000」 應該分配特定部分: 「RAM」 「HARD DISK」 「CDROM」
然後,我應該能夠用FK創建10X資產的ServerModel。現在,這些資產中的每一個都應該能夠標記「RAM」部分上次用於此特定資產的時間。
這不太對。 'through'模型必須將ForeignKey分配給ManyToMany關係的兩個表。 – 2012-03-05 15:43:43
謝謝。更新以反映這一點。 – marue 2012-03-05 16:04:11
嗨!謝謝,更新以上澄清!我很感激! :] – Zee 2012-03-05 16:21:50