2013-12-04 3 views
2

Я пытаюсьСохранить Джанго ImageField

1) Возьмите загруженное изображение и изменить его черно-белый с подушкой

2) В целях сохранения исходного файла в FileField называется «файл»

3) в целях сохранения черно-белую версию Imagefield под названием «thumbnail_225»

1 и 2 работает замечательно, но я не могу показаться, чтобы выяснить # 3.

Любая обратная связь с благодарностью.

Посмотреть

def archive_media_upload(request): 

    if request.method == 'POST': 
     form = UploadForm(request.POST, request.FILES) 
     if form.is_valid(): 
      m = form.save(commit=False) 

      m.user = request.user 
      m.type = 1 

         # create black and white 
      image = Image.open(m.file) 
      black_and_white = image.convert("L") 

         #HOW DO I SAVE/ASSIGN BW IMAGE TO the "thumbnail_225" ImageField? 

      m.save() 

      return HttpResponseRedirect(reverse('archive_media_archive')) 

    else: 
     form = UploadForm(initial={'user': request.user }) 

    return render(request, 'archive_app/archive_media_upload.html', {'archive':True, 'show_upgrade_link': show_upgrade_link,'form': form}) 

Модель

class Media(models.Model): 
    created_date = models.DateTimeField(default=datetime.now) 
    type = models.IntegerField(default=0) 

    user = models.ForeignKey(User) 

    title = models.CharField(max_length=255, blank=True) 
    file = models.FileField(upload_to=get_upload_file_name) 

    thumbnail_225 = models.ImageField(upload_to="thumbnail_images/", blank=True) 

ответ

0

Чтобы сохранить его словом, то, что вы ищете (я думаю) является clean метод. Вы должны определить его в виде:

класс UploadForm (forms.Form):

thumbnail_225 = forms.ImageField() 

... 

def clean_thumbnail_225 (self): 
    thumbnail_225 = self.cleaned_data["thumbnail_225"] 
    image = Image.open() 
    black_and_white = image.convert("thumbnail_225") 
    ... 
    # return the clean data... 

Обратите внимание на приведенный выше код является лишь общая схема. Это не будет работать и не содержит всю правильную логику и \ или синтаксис. Это предназначалось только для демонстрации. Полные подсказки приведены в DJANGO's form and field validation documentation.

Смежные вопросы