Quiero insertar la imagen del usuario en el campo src de la img . Pero no puedo hacerlo. Mi código:
modelos.py
class allusers(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) avatar = models.ImageField(upload_to='retest/static/images/')vistas.py
u = User.objects.get(username=username)modelo
<img src={{ u.allusers.avatar }} />1, registre la estática y los medios en la configuración de manera correcta.
MEDIA_URL = '/media/' MEDIA_ROOT = '/srv/django/myproject/src/myproject/media' STATIC_URL = '/static/' STATIC_FILE_ROOT = '/srv/django/myproject/src/myproject/static' STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"), '/srv/django/myproject/src/myproject/static', )2, llame a URL estáticas y de medios en urls.py
from django.views.static import serve url(r'^media/(?P<path>.*)$', serve, { 'document_root': settings.MEDIA_ROOT}), url(r'^static/(?P<path>.*)$', serve, { 'document_root': settings.STATIC_FILE_ROOT}),3, llama a avatar así
<img src="{{ u.allusers.avatar.url }}" alt="Avathar"/>En realidad tengo una solución alternativa
configuración.py
STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static/') MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')urls.py
from django.conf.urls.static import static if settings.DEBUG: urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)Necesitas usar el nombre de los atributos, de esa manera:
<img src={{ u.allusers.avatar.url }}
Puede comprobarlo en la documentación .
Nota: eso funcionará si u.allusers es una buena referencia, de lo cual tengo algunas dudas.