I'm using an inlineformset so that a user can upload multiple images at once. The images are saved and functionality is as expected, except on the front-end side. When I loop through my formset with a method resembling {{ form. image }}, I can clearly see that my image is saved and when I click the url, I am redirected to the uploaded file. The problem seems to be that the absoulte url is not stored when I try to set the image's URL as a src for an image element.
Trying to log MEDIA_URL and MEDIA_ROOT in a <p> tag yields no results.
settings.py
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')    
ROOT_URLCONF = 'dashboard_app.urls'
STATIC_URL = '/static/' 
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
] 
urls.py
from django.conf.urls import url, include
from . import views
from django.conf.urls.static import static
from django.conf import settings
app_name = 'Accounts_Namespace'
urlpatterns = [
    url(r'^$', views.Register, name='Accounts_Register'),
    url(r'^change-password/$', views.ChangePassword, name="Accounts_Change_Password"),
    url(r'^login/$', views.Login, name='Accounts_Login'),
    url(r'^logout/$', views.Logout, name='Accounts_Logout'),
    url(r'^profile/$', views.ViewProfile, name='Accounts_View_Profile'),
    url(r'^profile/edit/$', views.EditProfile, name="Accounts_Edit_Profile"),
    url(r'^school/', include('student_map_app.urls', namespace="Student_Maps_Namespace")),
 ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
models.py
class Gallery(models.Model):
id = models.AutoField(primary_key=True)
user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
image = models.ImageField(upload_to="gallery_images")
uploaded = models.DateTimeField(auto_now_add=True)
views.py
def EditProfile(request):
user = request.user
galleryInlineFormSet = inlineformset_factory(get_user_model(), Gallery, form=GalleryForm)
selectedUserGallery = Gallery.objects.filter(user=user).order_by('uploaded')
userGallery_initial = [{'image': selection.image} for selection in selectedUserGallery] # Using this syntax because formset initials accept dictionaries
if request.method == "POST":
    profile_form = ProfileEditForm(request.POST, instance=request.user)
    gallery_inlineformset = galleryInlineFormSet(request.POST, request.FILES)   # Essentially, we're passing a queryset
    if profile_form.is_valid() and gallery_inlineformset.is_valid():
        # Altering the User model through the UserProfile model's UserProfileForm representative
        user.first_name = profile_form.cleaned_data['first_name']
        user.last_name = profile_form.cleaned_data['last_name']
        user.save()
        new_images = []
        for gallery_form in gallery_inlineformset:
            image = gallery_form.cleaned_data.get('image')
            if image:
                new_images.append(Gallery(user=user, image=image))
        try:
            Gallery.objects.filter(user=user).delete()
            Gallery.objects.bulk_create(new_images)
            messages.success(request, 'You have updated your profile.')
        except IntegrityError:
            messages.error(request, 'There was an error saving your profile.')
            return HttpResponseRedirect('https://www.youtube.com')
else:
    profile_form = ProfileEditForm(request.user)
    gallery_inlineformset = galleryInlineFormSet(initial=userGallery_initial)
args = { 'profile_form':profile_form, 'gallery_inlineformset':gallery_inlineformset }
return render(request, 'accounts_app/editprofile.html', args)
editprofile.html
    {% block main %}
<section class="Container">
    <section class="Main-Content">
        <form id="post_form" method="POST" action='' enctype='multipart/form-data'>
            {% csrf_token %}
            {{ gallery_inlineformset.management_form }}
            {% for gallery_form in gallery_inlineformset %}
                <div class="link-formset">
                    {{ gallery_form.image }}    <!-- Show the image upload field -->
                    <p>{{ MEDIA_ROOT }}</p>
                    <p>{{ MEDIA_URL }}</p>
                    <img src="/media/{{gallery_form.image.image.url}}">
                </div>
            {% endfor %}
            <input type="submit" name="submit" value="Submit" />
        </form>
    </section>
</section>
{% endblock %}
Again, when I try:
<img src="{{ MEDIA_URL }}{{ gallery_form.image.url }}">
I get a value of "unknown" as the source, but I can click the link that "{{ gallery_form.image}}" generates and see the image that was uploaded. Trying to log both "MEDIA_URL" and "MEDIA_ROOT" yields no results. Not quite sure where the issue lies.
 
     
    