django-user-media

Um aplicativo reutilizável para lidar com arquivos gracesicamente que seus usuários podem fazer upload, como imagens de perfil, foto ...
Baixe Agora

django-user-media Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • MIT/X Consortium Lic...
  • Preço:
  • FREE
  • Nome do editor:
  • Martin Brochhaus
  • Site do editor:
  • https://github.com/bitmazk/

django-user-media Tag


django-user-media Descrição

Django-user-media é um aplicativo reutilizável django para lidar com os arquivos com graça que seus usuários podem fazer upload, como imagens de perfil, álbuns de foto etc ... Quase todos os aplicativos da Web modernos permitem que seus usuários façam upload de conteúdo, como áudio, vídeo ou imagens. Isso levanta uma série de problemas se esse conteúdo não deve ser visível para o mundo inteiro por padrão. Se você tiver um modelo UserProfile e adicione um imagefield a ele, você precisa criar uma boa ideia sobre como salvar essas imagens. Provavelmente, não é uma boa ideia manter os nomes de arquivos originais, pois eles podem perturbar o sistema de arquivos do seu servidor e abrir portas para hackers, que podem tentar força bruta contra o seu / mídia / user_profiles / na esperança de roubar alguns arquivos valiosos. Parece inevitável implementar uma função para o atributo upload_to do FileField do Django, pensei que isso pode ser um candidato para um aplicativo reutilizável. Este projeto é experimental. Estamos usando-o em dois projetos ao vivo completamente diferentes e esperamos criar uma implementação que é tão genérica que pode ser usada com segurança por qualquer um. Desde que estamos lidando com arquivos aqui e não apenas com um banco de dados, alterações incompatíveis para trás podem para ser uma dor na bunda para implantar seus locais de produção. Você foi advertido.Instalação para obter o mais recente lançamento estável de Pypi: pip install django-user-mediatro obter o mais recente commet do GitHub: pip install -e git: //github.com/bitmazk/django-user-media.git# ovo = user_mediaadd O aplicativo para o seu instalado_apps: install_apps = Ganche o aplicativo em seus principais URLs.py:UrlPatterns + = Patterns (', ... URL (R'umedia /' ('user_media.urls')),) Execute as migrações sul para criar as tabelas do banco de dados do aplicativo: ./Manage.py migram o usuário do usuário_mediausagelet que você tem um modelo UserProfile e você deseja adicionar um campo Avatar a esse modelo. Quer adicionar um genericrelation ao seu modelo UserProfile: de django.contrib.contenttypes Import GenericClass UserProfile (Models.Model): ... user = modelos.ForeignKey ('auth.user') Avatar = generic.genericrelation ('user_media.usermediaimage ',) Agora você poderá obter todas as imagens carregadas que pertencem a uma userprofile fazendo isso: Perfil = userprofile.objects.get (pk = 1) images = Prof ilele.avatar.filter (user = profile.user) Faz sentido adicionar um método de conveniência ao seu modelo userprofile: classe userprofile (modelos.model): ... def get_avatar (auto): retorne self.avatar.filter = self....user) em seus modelos, você pode agora fornecer um link para a visualização de criação de imagens como esta (assumindo que seu objeto UserProfile é chamado de objeto no contexto do modelo): {% Carregar URL de Futuro%} Carregar sua imagem Observe que o UserProfile é o nome do modelo que o contentType do seu modelo UserProfile retornaria. Você pode descobrir isso com ./Manage.py shell por exemplo: $ ./manage.py shellin : de django.contrib.contenttypes.models Importar ContentTypein : a partir do seu_app.models Importar UserProfilein : Contenttype.objects.get_for_model (userprofile) .Modelout : u'userprofile'Quando visitar esse link, o usuário deve ver um formulário de upload da imagem. Você pode querer substituir esse modelo (user_media / usermediaimage_form.html). Após o upload da imagem, a exibição deve redirecionar de volta para o URL absoluto do seu UserProfile. Se você quiser redirecionar para outro URL, poderá fornecer um próximo parâmetro URL via post ou obter: Carregar o seu Picturenow, você deve ter todos os blocos de construção que você precisa adicionar links ou botões aos seus modelos que chamam as exibições deste aplicativo. Na sua visualização de detalhes UserProfile você pode exibir o avatar, se disponível: {% se objeto.get_avatar%} {%% final } Ou na sua visualização de atualização userprofile você pode exibir um link para carregar uma nova imagem ou excluir a imagem existente: {% se form.instance.get_avatar%}

Excluir imagem { %%% A href = "{% URL" user_media_image_create "content_type =" userprofile "object_id = form.instance.pk%}"> Adicionar imagem de perfil {% endif%} o link de exclusão neste exemplo Renderize o modelo user_media / usermediaimage_confirm_delete.html, que você pode querer substituir na página inicial do seu projeto.


django-user-media Software Relacionado