2012-10-08 109 views
1

我有一個模型,我在其中指定某些字段。模型字段如何從另一個模型字段獲取數據?

class Upload_files(models.Model): 
    title   =models.CharField(max_length=100, blank=True , null=True) 
    image   =models.ImageField(upload_to='images') 
    attributes  =models.ForeignKey(Product_attributes, blank=True , null=True) 
    value   =models.CharField(max_length=100, blank=True , null=True) 
    price   =models.CharField(max_length=100, blank=True , null=True) 

    def __unicode__(self): 
      return unicode(self.id) 

現在我想創建另一個只有三個字段(上傳id,屬性id和值)的表。這些字段必須從上面的表格取得值,即上面選擇的upload_id,屬性以及值,並且只能從管理員面板讀取。

我用下面的代碼

class Product_values(models.Model): 
    product   =models.ForeignKey(Upload_files, blank=True , null=True) 
    attributes  =models.ForeignKey(Product_attributes, blank=True , null=True) 
    value   =models.CharField(max_length=100, blank=True , null=True) 
    def __unicode__(self): 
      return unicode(self.product) 

我知道不工作正如我所說的,但我怎麼能做到這一點,讓價值和屬性字段取默認值,因爲我在upload_files模型定義它。

編輯

我只是希望,當我從管理潘內爾插入upload_files模型中的值,上傳文件的情況下在另一張表中創建與上傳ID,屬性和價值,我定義較早

回答

1

使用post_save signal,寫和連接創建該條目Product_values類似的接收器功能:

def create_product_entry(sender, instance, created, **kwargs): 
    # enter your code here 

post_save.connect(create_product_entry, sender=Upload_files) 
+0

我用這一點,但它並沒有創建另一個表,以便你能告訴我一個使用它創建新表並在其中插入值的例子。 **我已經使用這樣** 'DEF create_product_value(發件人,例如,** kwargs): 酒量,新= Drinker.objects.get_or_create(產物=實例) post_save.connect(product_value,發件人= Upload_files)' – Inforian

相關問題