2010-04-27 35 views
4

填寫我有這樣的模式:Django的:只有兩個領域的人可以在

class Journals(models.Model): 
    jid = models.AutoField(primary_key=True) 
    code = models.CharField("Code", max_length=50) 
    name = models.CharField("Name", max_length=2000) 
    publisher = models.CharField("Publisher", max_length=2000) 
    price_euro = models.CharField("Euro", max_length=2000) 
    price_dollars = models.CharField("Dollars", max_length=2000) 

有沒有辦法讓人們填寫要麼price_europrice_dollars

我的確知道解決問題的最佳方法是隻有一個字段和另一個指定貨幣的表,但我有約束,我無法修改數據庫。

謝謝!

回答

2

我同意T. Stone的customizing the form是最好的選擇。如果你不能這樣做,或者除此之外,你可以使用custom clean() method on your form來強制執行規則。請記住,您在clean()方法中引發的任何驗證錯誤都不會附加到特定字段,而是附加到表單本身。

4

接口沒有必要反映數據結構。您可以簡單地讓您的用戶界面展示1個貨幣字段,然後選擇美元和歐元之間的選擇,然後當數據提交回Journals模型時,您只需將其分配到正確的字段並清除其他字段。