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、属性和值

4

1 回答 1

1

使用post_save 信号,并编写并连接一个接收器函数来创建 Product_values 条目,如下所示:

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

post_save.connect(create_product_entry, sender=Upload_files)
于 2012-10-08T09:37:07.650 回答