Django-User-media

Een herbruikbare app om de bestanden te vergroten die uw gebruikers kunnen uploaden, zoals profielfoto's, foto ...
Download nu

Django-User-media Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • MIT/X Consortium Lic...
  • Prijs:
  • FREE
  • Naam uitgever:
  • Martin Brochhaus
  • Uitgever website:
  • https://github.com/bitmazk/

Django-User-media Tags


Django-User-media Beschrijving

Django-User-Media is een Django herbruikbare app om de bestanden te vergroten die uw gebruikers kunnen uploaden, zoals profielfoto's, fotoalbums enz. Bijna alle moderne web-apps stellen hun gebruikers toe om inhoud te uploaden, zoals audio, video of afbeeldingen. Dit verhoogt een aantal kwesties als die inhoud niet standaard zichtbaar is voor de hele wereld. Als u een UserProfile-model hebt en een ImageField aan toevoegen, moet u een goed idee bedenken over het opslaan van die afbeeldingen. Het is waarschijnlijk geen goed idee om de oorspronkelijke bestandsnamen te behouden, omdat ze het bestandssysteem van uw server kunnen verstoren en deuren openen voor hackers, die kunnen proberen te brute-force tegen uw / media / user_profiles / in de hoop om een aantal waardevolle bestanden te stelen. Het lijkt onvermijdelijk om een functie voor Django's FileField's Upload_to-attribuut te implementeren, ik dacht dat dit misschien een kandidaat kan zijn voor een herbruikbare app. Dit project is experimenteel. We gebruiken het op twee compleet verschillende live-projecten en zullen hopelijk een implementatie bedachten die zo generiek is dat het door iemand veilig kan worden gebruikt. Wat we hier met bestanden te maken hebben en niet alleen met een database, veranderen onverenigbare wijzigingen om pijn in de kont te zijn om op je productielocaties te implementeren. U bent gewaarschuwd.Installatie om de nieuwste stabiele release van PYPI te krijgen: PIP-installatie Django-User-Mediato Krijg de nieuwste commit van GitHub: PIP Install -e -e git: //github.com/bitmazk/django-user-media.git# EI = User_Mediaadd De app naar uw geïnstalleerde_apps: geïnstalleerd_apps = Haak de app in uw hoofd-urls.py:urlpatterns + = patronen ('', ... URL (R'umedia / ', omvatten ('User_Media.urls')),) Voer de South Migrations uit om de databasetabellen van de app te maken :./Manage.py Migrate User_MediaUSOgelet is aannemen dat u een UserProfile-model hebt en u een avatar-veld aan dat model wilt toevoegen. U kunt u misschien Wilt u een generiek toevoegen aan uw UserProfile Model: van Django.Contrib.ContentyPes Import GenericClass UserProfile (Models.model): ... Gebruiker = modellen.FOREIGNEKEY ('Auth.User') Avatar = Generic.genericRelation ('User_Media.usmediaImage ',) Nu kunt u alle geüploade afbeeldingen krijgen die behoren tot een UserProfile door dit te doen: Profiel = UserProfile.Objects.get (PK = 1) Afbeeldingen = Prof il.avatar.filter (gebruiker = profiel.user) Het is logisch om een gemaksmethode toe te voegen aan uw UserProfile Model: Klasse UserProfile (Models.model): ... Def Get_Avatar (Zelf): Self.avatar.filter (gebruiker = Self.User) In uw sjablonen kunt u nu een koppeling geven aan de beeldcreatieweergave zoals deze (ervan uitgaande dat uw userprofile-object object in de context van de sjabloon wordt genoemd): {% belasting URL van toekomstige%} Upload uw afbeelding Merk op dat UserProfile de modelnaam is die het contenttype van uw userprofile-model zou terugkeren. Je kunt dit ontdekken met ./manage.py shell bijvoorbeeld: $ ./manage.py shellin : van django.contrib.contentiettypen.models importtyptypein : van Your_App.models Import UserProfilein : ContentType.Objects.Get_FOR_Model (UserProfile) .modelout : u'userprofile'Wanneer een bezoek aan die link, moet de gebruiker een afbeelding uploadformulier raadplegen. Mogelijk wilt u die sjabloon (User_Media / usermediaimage_form.html) overschrijven. Na het uploaden van het beeld moet de weergave terugkeren naar de absolute URL van uw userprofiel. Als u naar een andere URL wilt omleiden, kunt u een volgende URL-parameter opgeven via POST of GET: Upload uw Picturenow U moet alle bouwstenen hebben die u nodig hebt om links of knoppen aan uw sjablonen toe te voegen die de standpunten van deze toepassing oproepen. Op uw userProfile Detailweergave zou u de Avatar kunnen weergeven, indien beschikbaar: {% if object.get_avatar%}

Afbeelding verwijderen { % else%} Profiel toevoegen {% ENDIF%} De verwijder link in dit voorbeeld zal Render de User_Media / UsermediaImage_confirm_delete.html-sjabloon, die u misschien wilt overschrijven in de startpagina van uw project.Product


Django-User-media Gerelateerde software