2013-04-28 1 views
0

Я установил Фотолог, но я не знаю, как позволить (нормальному) пользователю загружать изображение без использования интерфейса администратора.Как я могу позволить пользователям загружать изображения в фотолог?

Я хочу, чтобы пользователи загружали изображения с кодировкой base64 из холста HTML5, но на первом этапе было бы нормально загружать файлы из файловой системы пользователя.

Я думаю, я мог бы изменить this general example о том, как загрузить файлы, чтобы использовать фотомодель фотолога. Я предполагаю, что это означало бы как-то заполнение атрибута ImageField «ImageModel» «image».

+0

. Вы когда-нибудь находили ответ? У меня такая же проблема. – PhilBot

+0

Да, мне удалось реализовать это. Я довольно хорошо адаптировал связанный answe р. Я постараюсь написать ответ ... – kossmoboleat

ответ

0

Я действительно использовал ссылку для загрузки файлов и адаптировал ее к фотологу. Из моего элемента canvas я извлечил URL-адрес базы данных и установил поле является формой для его значения, то я мог бы интерпретировать его на стороне сервера Джанго в представлении:

def upload_base64(request): 
    # Handle file upload 
    if request.method == 'POST': 
     form = PhotoCodeForm(request.POST, request.FILES) 

     if form.is_valid(): 
      uploaded_photo_data = base64.b64decode(request.POST['photocode']) 

      uploaded_photo_file = ContentFile(uploaded_photo_data)    

      title_str = "Untitled"    
      slug = slugify(title_str + str(datetime.now())) 

      uploaded_photo = Photo.objects.create(image = default_storage.save(slug, uploaded_photo_file), 
              title = slug, 
              title_slug = slug) 

      name_upload_gallery = "user-upload-queue"      

      try: 
       upload_gallery = Gallery.objects.get(title_slug__exact=name_upload_gallery)  
      except ObjectDoesNotExist: 
       return HttpResponseBadRequest('<html><body><p>The gallery "'+name_upload_gallery+'" does not exist.</p></body></html>') 

      upload_gallery.photos.add(uploaded_photo) 

      # Redirect to the photo gallery after POST 
      return HttpResponseRedirect('/canvas/') 
     else: 
      return HttpResponseBadRequest('<html><body><p>The entered data was not correct.</p></body></html>') 
    else: 
     form = PhotoCodeForm() # A empty, unbound form 

    return render_to_response(
     'photologue_upload/upload_base64.html', 
     {'form': form}, 
     context_instance=RequestContext(request) 
    ) 

upload_base64.html очень простая форма, которая имеет поле photocode где строка base64 наклеена на

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

  • Нет связанных вопросов^_^