Hello Users, 
I am building an app called "SHOP". For some very wired reason I am getting 
below error:------------------------------------------------------------
ValueError at /shop/
The 'image' attribute has no file associated with it.
| Request Method: | GET |
| Request URL: | http://localhost:8000/shop/ |
| Django Version: | 2.2.5 |
| Exception Type: | ValueError |
| Exception Value: | The 'image' attribute has no file associated with it. |
| Exception Location: | 
/home/amitesh/PycharmProjects/myvenv/lib/python3.6/site-packages/django/db/models/fields/files.py
 in _require_file, line 38 |
| Python Executable: | /home/amitesh/PycharmProjects/myvenv/bin/python |
| Python Version: | 3.6.8 |
| Python Path: | ['/home/amitesh/PycharmProjects/perfectcushion',
 '/usr/lib/python36.zip',
 '/usr/lib/python3.6',
 '/usr/lib/python3.6/lib-dynload',
 '/home/amitesh/PycharmProjects/myvenv/lib/python3.6/site-packages'] |
| Server time: | Tue, 17 Sep 2019 18:59:22 +0000 |

 --------------------------------------------------------------------When I see 
the debug page further I see that my base.html is complaining, below is the 
error:
Error during template rendering

In template 
/home/amitesh/PycharmProjects/perfectcushion/SHOP/templates/base.html, error at 
line 0

The 'image' attribute has no file associated with it.

| 1 | {% load staticfiles %} |
| 2 | <!DOCTYPE html> |
| 3 | <html lang="en"> |
| 4 | <head> |
| 5 |  <meta charset="UTF-8"> |
| 6 |  <meta name="description", content="{% block metadescription %}{% 
endblock %}"> |
| 7 |  <title>{% block title %}{% endblock %}</title> |
| 8 | </head> |
| 9 | <body> |



base.html
{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="description", content="{% block metadescription %}{% endblock 
%}">
    <title>{% block title %}{% endblock %}</title>
</head>
<body>
    <div>
        {% include 'header.html' %}
        {% include 'navbar.html' %}
        {% block content %}
        {% endblock %}
    </div>
        {% include 'footer.html' %}

</body>
</html>headers.html
{% load staticfiles %}
<header>
    <center>
        <img src="{% static 'img/logo.png' %}" alt="Perfect Cushion Store">
    </center>
</header>navbar.html
{% load staticfiles %}
<nav>
    <ul>
        <li><a href="{% url 'shop:allProdCat' %}">All Products</a></li>
        <li>Your Cart()</li>
    </ul>
</nav>
category.html
{% extends 'base.html' %}
{% load staticfiles %}
{%  block metadescription %}
    {% if category %}
        {{ category.description|truncatewords:125 }}
    {% else %}
        Welcome to the cushion store where you can buy comfy and awesome 
cushions.
    {% endif %}
{% endblock %}

{% block title %}
    {% if category %}
        {{ category.name }} - Perfect Cushion Store
     {% else %}
        See our Cushion Collection - Perfect Cushion Store
    {% endif %}
{% endblock %}

{% block content %}
    <!-- Breadcrumb navigation-->
    {%  if category %}
        <div>
            <div>
                <p><a href="{% url 'SHOP:allProdCat' %}">Our Product 
Collection</a> | {{ category.name }}</p>
            </div>
        </div>
    {% endif %}
    <div>
    {% if category %}
        <img src="{{ category.image.url }}" alt="{{ category.name }}">

    </div>
    <br>
    <div>
        <h1>{{ category.name }}</h1>
        <p>{{ category.description }}</p>
    </div>
    {% else %}
        <img src="{% static 'img/banner.jpg' %}" alt="Our Products Collection">
     </div>
     <br>
     <div>
        <h1>Our Products collection</h1>
        <p>
            Lorem Ipsum is simply dummy text of the printing and typesetting 
industry.             Lorem Ipsum has been the industry's standard dummy text 
ever since the 1500s,             when an unknown printer took a galley of type 
and.</p>
     </div>
    {% endif %}
    <div>
        <div>
            {% for product in products %}
                <div>
                    <div>
                        <a href=""><img src="{{ product.image.url }}" alt="{{ 
product.name }}"></a>
                        <div>
                            <h4>{{ product.name }}</h4>
                            <p>{{ product.price }}</p>
                        </div>
                    </div>
                </div>
            {% endfor %}
        </div>
    </div>
{% endblock %}SHOP/urls.py
from django.urls import path
from . import views

app_name = 'shop'

urlpatterns = [
    path('', views.allProdCat, name='allProdCat'),
    path('<slug:c_slug>/', views.allProdCat, name='products_by_category'),
]project/urls.py
from django.contrib import admin
from django.urls import path, include
from SHOP import views
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('shop/', include('SHOP.urls')),
]

# We need to map the static and the media URLS with the below settings
if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, 
document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, 
document_root=settings.MEDIA_ROOT)views.py
from django.shortcuts import render, get_object_or_404
from .models import Category, Product


def allProdCat(request, c_slug=None):
    c_page = None
    products = None
    if c_slug is not None:
        c_page = get_object_or_404(Category, c_slug=c_slug)
        products = Product.objects.filter(category=c_page, available=True)
    else:
        products = Product.objects.all().filter(available=True)
    return render(request, 'shop/category.html', {'category': c_page, 
'products': products})Please help me figure out my mistake.



Regards,
Amitesh Sahay

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/844134444.6881357.1568748537105%40mail.yahoo.com.

Reply via email to