Я пишу свое первое приложение django, которое использует ImageField, и у меня возникли трудности.Проблема в том, что мои изображения не загружаются.Я просмотрел как можно больше примеров.И я не уверен, что здесь происходит.
Я пытаюсь проверить, что мои фотографии загружаются, посмотрев в каталог upload_to
.Когда форма отображается на веб-странице, отображается правильная кнопка загрузки файла.Когда я нажимаю "Отправить", код ниже выполняется, но изображения никогда не загружаются.
Исходя из upload_to
, я ожидаю увидеть загруженные изображения, чтобы увидеть изображения под: myproject/photos
или myproject/media/photos
правильно?
Я что-то здесь не так делаю?Как получить изображения для загрузки?
-------------- settings.py -------------
MEDIA_ROOT = '/home/me/django_projects/myproject/media/'
MEDIA_URL = '/media/'
-------------- model.py -------------
class Person(models.Model):
lastName = models.CharField(max_length=20)
firstName = models.CharField(max_length=20)
image = models.ImageField(upload_to='photos', blank=True, null=True)
# save executes but no image is saved.
# Because images are uploaded along with a new entry, I needed a special
# work around to get the self.id
def save(self):
for field in self._meta.fields:
if field.name == 'image':
if self.id is not None:
#save image now
field.upload_to = 'photos/%d' % self.id
else:
#Save image later
saveImageLast = True
super(Customer, self).save() # should create self.id if not already
if saveImageLast == True:
field.upload_to = 'photos/%d' % self.id
super(Customer, self).save()
print "save complete" #prints, but no image ...?
-------------- forms.py -------------
class PersonForm(ModelForm):
class Meta:
model = Person
fields = ( 'lastName', 'firstName', 'image' )