I have a problem in one of my models. I'm uploading an image, and I want to store the id (pk in the database table) but I need to know at which point Django will have access to self.id
.
models.py
class BicycleAdItemKind(MPTTModel):
def url(self, filename):
pdb.set_trace()
url = "MultimediaData/HelpAdImages/ItemKind/%s/%s" % (self.id, filename)
return url
def item_kind_image(self):
return '<img align="middle" src="/media/%s" height="60px" />' % self.image
item_kind_image.allow_tags = True
# Bicicleta completa, Componentes para bicicleta, Acessorios para ciclista
n_item_kind = models.CharField(max_length=50)
parent = TreeForeignKey('self', null=True,
blank=True, related_name='children')
description = models.TextField(null=True, blank=True)
image = models.ImageField(upload_to=url, null=True, blank=True)
date_inserted = models.DateTimeField(auto_now_add=True)
date_last_update = models.DateTimeField(auto_now=True)
def __unicode__(self):
return self.n_item_kind
class MPTTMeta:
order_insertion_by = ['n_item_kind']
The problem is in the url()
method; I can only get self.id
when updating an object, I don't get the self.id
when creating a new object. How can I modify this model so that I get self.id
when creating a new object?
With the current code, when I'm creating a new object I will end up with a url like:
MultimediaData/HelpAdImages/ItemKind/None/somefile.jpg
And I need to have something like:
MultimediaData/HelpAdImages/ItemKind/35/somefile.jpg
Any clues?
question from:
https://stackoverflow.com/questions/14234917/django-how-to-get-self-id-when-saving-a-new-object 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…