У меня проблема в одной из моих моделей. Я загружаю изображение, и я хочу сохранить id (pk в таблице базы данных), но мне нужно знать, в какой момент Django будет иметь доступ к 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']
Проблема заключается в методе url()
; Я могу получить self.id
только при обновлении объекта, я не получаю self.id
при создании нового объекта. Как я могу изменить эту модель, чтобы получить self.id
при создании нового объекта?
С текущим кодом, когда я создаю новый объект, я получаю URL-адрес, например:
MultimediaData/HelpAdImages/ItemKind/None/somefile.jpg
И мне нужно иметь что-то вроде:
MultimediaData/HelpAdImages/ItemKind/35/somefile.jpg
Любые подсказки?