2014-12-05 75 views
0

即時做一些模型,並在設計時有一個想法,這裏是一個例子:銀行購買股票的股票,所以一家銀行可以有很多股票和很多股票可以從很多銀行都是多對多的關係,但是當銀行購買股票時,它必須保持購買價格和日期/週期/週期的記錄,對於銷售來說工作是一樣的,o爲了保持記錄所有,即時通訊的做一類是這樣的:Django:多對多的關係模型定義

class Bank(models.Model): 
    name = models.Charfield() 
    money = models.IntegerField() 


class StockShares(models.Model): 
    name = models.Charfield() 
    price = models.Charfield() 

現在是真正的關係,我知道我必須添加

stock = models.ManyToManyField(StockShares) 

但是,如何添加僅在發生購買或出售時存在的關係屬性?

我想也許我可以做這樣的事情:

class Bank(models.Model): 
    name = models.Charfield() 
    money = models.IntegerField() 


class StockShares(models.Model): 
    name = models.Charfield() 
    price = models.Charfield() 


class Sale(models.Model): 
    bank = models.ForeignKey(Bank) 
    stockshares = models.ForeignKey(StockShares) 
    date = models.DateField() 
    quantity = models.ForeignKey()##this should be the quantity of stockshares sold in $ im just lazy to write it down 

這是我會到normaly不使用Django和數據庫管理

裏面有沒有辦法中的形式給出這個django沒有做中間階級來處理關係?或即時通訊做我的好吼聲,這是事物如何在Django做

PD:英語不是我的第一語言IM盡我所能在這裏

提前

謝謝回答!

回答

2

你正在尋找一個Extra fields on many-to-many relationships
您的代碼應該是這樣的:

class Bank(models.Model): 
    name = models.Charfield() 
    money = models.IntegerField() 
    members = models.ManyToManyField(StockShares, through='Sale') 

class StockShares(models.Model): 
    name = models.Charfield() 
    price = models.Charfield() 


class Sale(models.Model): 
    bank = models.ForeignKey(Bank) 
    stockshares = models.ForeignKey(StockShares) 
    date = models.DateField() 

也許數量應計算領域

+0

ohhhhh我明白了,非常感謝你! – AbdulHamid 2014-12-05 15:50:55