Изображение по умолчанию отображается даже после загрузки другого изображения в Django - PullRequest
0 голосов
/ 27 февраля 2020

Я работаю над сайтом, где пользователи могут размещать рекламу домов, которые они хотят сдать в аренду. Таким образом, у меня есть поле изображения в models.py, но независимо от того, какое изображение я загружаю, система продолжает отображать фотографию по умолчанию. Я настроил носитель root и URL-адрес в соответствии с документацией в файле settings.py, а также добавил его в мои URL-адреса.

models.py:

class advertisements(models.Model):
place=models.CharField(max_length=30)
address=models.CharField(max_length=50)
bedroom=models.PositiveSmallIntegerField()
rent=models.PositiveIntegerField()
size=models.PositiveIntegerField()
date_posted=models.DateTimeField(default=timezone.now)
owner= models.ForeignKey(User,on_delete=models.CASCADE)
image = models.ImageField(default='defaulthouse.jpg',upload_to='house_pics')


def get_absolute_url(self):
    return reverse('advertisement_details', kwargs={'pk':self.pk})

def save(self, *args, **kwargs):
    super().save(*args, **kwargs)

    image=Image.open(self.image.path)

views.py :

class AdvertisementCreateView(LoginRequiredMixin, CreateView):
model= advertisements
fields=['image', 'place','address','bedroom','bathroom','rent','size']

def form_valid(self, form):
    form.instance.owner=self.request.user
    return super().form_valid(form)

urls.py:

urlpatterns = [

path('', AdvertisementListView.as_view(), name='HomePage'),
path('advertisements/<int:pk>/',AdvertisementDetailsView.as_view() , name='advertisement_details'),
path('create_advertisements',AdvertisementCreateView.as_view(), name='create_advertisements'),
path('your_advertisements',views.your_advertisements, name='your_advertisements'),
path('advertisements/<int:pk>/update',AdvertisementUpdateView.as_view() , name='advertisement_update'),
path('advertisements/<int:pk>/delete',AdvertisementDeleteView.as_view() , name='advertisement_delete'),
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)

html:

<div class="container">
     <legend class="border-bottom mb-4 text-center"><h3>House Information</h3></legend> 
     <h5 class="card-title">Location: {{object.place}} </h5> 
     <img src="{{ object.image.url }}" alt="..." class="img-thumbnail">    
     <p> Full Address: {{object.address}}</p>  
     <p>Number of bedrooms: {{object.bedroom}}</p>
     <p>Number of Bathrooms: {{object.bathroom}}</p>
     <p>House/Apartment Size: {{object.size}} squarefeet</p>
     <p>Rent per month: {{object.rent}} taka</p>
     <legend class="border-bottom mb-4 text-center"><h3>Owner Information</h3></legend>
     <p>Owner Name: {{object.owner}}</p>
     <p>Advertisement Posted on: {{object.date_posted}}</p>
     {% if object.owner == user %}
    <a class="btn btn-secondary btn-sm mt-1 mb-1" href="{% url 'advertisement_update' object.id%}">Update</a>
    <a class="btn btn-danger btn-sm mt-1 mb-1" href="{% url 'advertisement_delete' object.id%}">Delete</a>
    {% endif %}

...