Я работаю над сайтом, где пользователи могут размещать рекламу домов, которые они хотят сдать в аренду. Таким образом, у меня есть поле изображения в 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 %}