2012-10-18 13 views
2

下面是一個簡單的模型:cloudinary cloudinary.models.CloudinaryField添加public_id到外地

類產品(models.Model):

caption = models.CharField(max_length=1000) 
description=models.TextField() 
supplier = models.ForeignKey(Supplier) 
designNumber = models.CharField(max_length=100) 
price = models.IntegerField() 
stock = models.IntegerField() 
parameters = models.ManyToManyField(ProductParameterValues) 
image = cloudinary.models.CloudinaryField('image') 
added_on = models.DateTimeField(auto_now=True) 
def __unicode__(self): 
    return self.designNumber + ":" + self.caption + ":" + self.supplier.name 

我希望能夠有圖像(cloudinary圖像)有一個由其他參數組成的公共ID - 比如supplier.user.id和designNumber。

我們如何做到這一點?

謝謝。

回答

3

在Python庫,你可以從CloudinaryField繼承,並確定從模型的屬性public_id(和其他上傳參數)的最新版本,例如:

class MyCloudinaryField(CloudinaryField): 
    def upload_options(self, model_instance): 
     return {'public_id': model_instance.supplier.user.id + "-" + model_instance.designNumber} 
+0

我沒能看到的方式來在編輯操作期間訪問字段的現有public_id。我查看了'self'和'model_instance'上的可用內容。我錯過了嗎?我想確保它保持現有的public_id,如果它已經有了。 – Seth