2017-10-19 4 views
-1

Salut, je suis en train d'obtenir des images de profil utilisateur pour afficher à partir d'une base de données MySQL Django correspondant à l'utilisateur qui est connecté ..Django n'affichera l'image de base de données en HTML

Voici mon settings.py

# Build paths inside the project like this: os.path.join(BASE_DIR, ...) 
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
TEMPLATE_DIR = os.path.join(BASE_DIR,'templates') 
STATIC_DIR = os.path.join(BASE_DIR,'static') 
MEDIA_DIR = os.path.join(BASE_DIR,'media') 

# Static files (CSS, JavaScript, Images) 
# https://docs.djangoproject.com/en/1.10/howto/static-files/ 

STATIC_URL = '/static/' 
STATICFILES_DIRS = [STATIC_DIR, ] 

# Media files 

MEDIA_ROOT = MEDIA_DIR 
#MEDIA_DIRS = [MEDIA_DIR, ] 
MEDIA_URL = '/media/' 
ADMIN_MEDIA_PREFIX = '/admin/media/' 

Voici mon urls.py:

urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
    url(r'^smartcity/',include('smartcity.urls')), 
    #url(r'^accounts/register/$', MyRegistrationView.as_view(), name='registration_register'), 
    #url(r'^accounts/register/$', views.register, name='registration'), 
    url(r'^accounts/', include('registration.backends.simple.urls')), 
    url(r'^admin/', admin.site.urls), 
    url(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}), 
] 

Et voici ce que j'ai dans le fichier html:

src="{% static 'user.userprofile.picture.url' %}" 

C'est ma table, je suis en train de récupérer l'image de: Database screenshot

Je ne sais pas comment l'obtenir pour afficher, je pensais que mon mappage d'URL était correcte que je peux voir l'image si i aller à http://127.0.0.1:8000/media/profile_images/trump.jpg

Des idées? Désolé je suis un peu de noobie.

Répondre

0

FileField télécharge vers le côté média des choses, pas statique, donc vous avez juste à faire;

<img src="{{ user.userprofile.picture.url }}" alt="" /> 

Voici un exemple de ce scénario; https://www.simplifiedpython.net/django-file-upload-tutorial/

+0

Merci cela a fonctionné! J'essayais de le faire avec ces%, mais ne fonctionnait pas .. le vôtre a travaillé avec les doubles parenthèses –

+0

Très bien, super! Pourriez-vous accepter ma réponse alors? –