【发布时间】:2020-10-20 03:15:20
【问题描述】:
基本上,我正在练习一个 Django 的电子商务项目。有两种添加图像的方法。 ( 1 ) - 首先是有人手动添加照片,但我希望用户通过静态文件自动添加产品照片。
models.py:
from django.db import models
# Create your models here.
class Mobile(models.Model):
brand = models.CharField(max_length=30)
price = models.IntegerField(default=1)
color = models.CharField(max_length=30)
screen_size = models.IntegerField(default=5)
os = models.CharField(max_length=30, default='Samsung')
def __unicode__(self):
return 'This is a mobile'
def get_price(self):
return self.price
class MobileImage(models.Model):
device = models.ForeignKey(Mobile, on_delete=models.CASCADE)
image = models.ImageField(upload_to='media/images/')
def __unicode__(self):
return self.device
class Laptop(models.Model):
brand = models.CharField(max_length=30)
price = models.IntegerField(default=1)
color = models.CharField(max_length=30)
screen_size = models.IntegerField(default=5)
os = models.CharField(max_length=30, default='Dell')
def __str__(self):
return self.brand
我的意见.py:
def mobile(request):
mobiles = Mobile.objects.all()
context = {
'mobiles': mobiles
}
return render(request, 'device/mobile.html', context)
def laptop(request):
laptops = Laptop.objects.all()
context = {
'laptops': laptops
}
return render(request, 'device/laptop.html', context)
我的 mobile.html:
{% extends 'device/base.html' %}
{% load static %}
{% block body %}
<h1>Mobile!</h1>
<!-- Table -->
<table class="">
<tr>
<h3>Phones:</h3>
<th>ID</th>
<th>Model</th>
<th>Price</th>
<th>Color</th>
<th>Screen Size</th>
<th>OS</th>
<th>Image</th>
</tr>
<body>
{% for mobile in mobiles %}
<tr>
<td>{{ forloop.id }}</td>
<td>{{ mobile.brand }}</td>
<td>${{ mobile.price }}</td>
<td>{{ mobile.color }}</td>
<td>{{ mobile.screen_size }}</td>
<td>{{ mobile.os }}</td>
{% for item in mobile.mobileimage_set.all %}
<td><img src="{{ MEDIA_URL }}{{ item.image }}" alt="No Photo"></td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
在第一张图片中,它显示了我的静态文件的路径。 在第二张图片中,它显示了我面临的问题。
【问题讨论】:
-
您将媒体与静态文件混淆了。媒体用于上传内容,静态用于静态,例如 CSS、JS 和主题图像
-
得到了你。那么解决方案是什么?
-
我该如何解决这个问题?
-
我的评论与问题无关,只是一个声明 - 通常您应该将它们分开。回到问题:看起来你没有静态/媒体文件的 url 处理程序。发布您的
urls.py可能会有所帮助 -
也许吧。如何添加 url 处理程序?
标签: python django django-staticfiles