2012-10-08 78 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

相关问题