Django 将图像与管理员的产品名称连接起来
Django Connecting Image with Product Name from Admin
嘿,我希望有人能帮助我。
我在一个电子商务网站上工作,我可以通过 django 从 Admin 数据库添加每个产品,但我无法添加图片,目前代码为每个产品添加了相同的图片。
{% for Product in oldProducts %}
<div class="col-lg-4">
<img class="img-circle" src="{% static "ecommerce/img/weightgain2.png" %}" alt="Generic placeholder image" width="140" height="140">
<h2>{{ Product.Name }}</h2>
<p>{{ Product.Price }} </br> {{ Product.Description }}</p>
<form method='POST' action="{% url 'ecommerce:addbasket' %}">
{% csrf_token %}
<input type="hidden" name="stuffNum" value="{{ Product.ProductID }}">
<input type="hidden" name="stuffName" value="{{ Product.Name }}">
<input type="hidden" name="stuffPri" value="{{ Product.Price }}">
<input type="hidden" name="stuffDesc" value="{{ Product.Description }}">
<button class="btn btn-default" type="submit">Add To Basket</button>
</form>
</div><!-- /.col-lg-4 -->
{% endfor %}
如何让每件商品拍摄不同的同名图片?
class Product(models.Model):
ProductID = models.AutoField(db_column='ProductId', primary_key=True) # Field name made lowercase.
Name = models.CharField(db_column='Name', max_length=255, blank=True, null=True) # Field name made lowercase.
Price = models.TextField(db_column='Price', blank=True, null=True) # Field name made lowercase. This field type is a guess.
Description = models.TextField(db_column='Description', blank=True, null=True) # Field name made lowercase.
Image = models.TextField(db_column='Image', blank=True, null=True) # Field name made lowercase.
您使用的是 Textfield
而不是 ImageField
,这就是您无法选择要上传的图片的原因。
最好改成这样:
class Product(models.Model):
ProductID = models.AutoField(db_column='ProductId', primary_key=True)
Name = models.CharField(db_column='Name', max_length=255, blank=True, null=True)
Price = models.TextField(db_column='Price', blank=True, null=True)
Description = models.TextField(db_column='Description', blank=True, null=True)
Image = models.ImageField(upload_to='path/to/dir/for/images/', db_column='Image', blank=True, null=True)
然后在你的HTML中这样写:
{% for Product in oldProducts %}
<div class="col-lg-4">
<img class="img-circle" src={{ Product.Image.url }} alt="Generic placeholder image" width="140" height="140">
...
</div>
{% endfor %}
[PYTHON 注意事项]:请使用 product_id
而不是 ProductID
等。使用 snake case 约定。这是 Python,不是 JS ;)
阅读 ImageField
或搜索 Google 了解更多信息。
嘿,我希望有人能帮助我。
我在一个电子商务网站上工作,我可以通过 django 从 Admin 数据库添加每个产品,但我无法添加图片,目前代码为每个产品添加了相同的图片。
{% for Product in oldProducts %}
<div class="col-lg-4">
<img class="img-circle" src="{% static "ecommerce/img/weightgain2.png" %}" alt="Generic placeholder image" width="140" height="140">
<h2>{{ Product.Name }}</h2>
<p>{{ Product.Price }} </br> {{ Product.Description }}</p>
<form method='POST' action="{% url 'ecommerce:addbasket' %}">
{% csrf_token %}
<input type="hidden" name="stuffNum" value="{{ Product.ProductID }}">
<input type="hidden" name="stuffName" value="{{ Product.Name }}">
<input type="hidden" name="stuffPri" value="{{ Product.Price }}">
<input type="hidden" name="stuffDesc" value="{{ Product.Description }}">
<button class="btn btn-default" type="submit">Add To Basket</button>
</form>
</div><!-- /.col-lg-4 -->
{% endfor %}
如何让每件商品拍摄不同的同名图片?
class Product(models.Model):
ProductID = models.AutoField(db_column='ProductId', primary_key=True) # Field name made lowercase.
Name = models.CharField(db_column='Name', max_length=255, blank=True, null=True) # Field name made lowercase.
Price = models.TextField(db_column='Price', blank=True, null=True) # Field name made lowercase. This field type is a guess.
Description = models.TextField(db_column='Description', blank=True, null=True) # Field name made lowercase.
Image = models.TextField(db_column='Image', blank=True, null=True) # Field name made lowercase.
您使用的是 Textfield
而不是 ImageField
,这就是您无法选择要上传的图片的原因。
最好改成这样:
class Product(models.Model):
ProductID = models.AutoField(db_column='ProductId', primary_key=True)
Name = models.CharField(db_column='Name', max_length=255, blank=True, null=True)
Price = models.TextField(db_column='Price', blank=True, null=True)
Description = models.TextField(db_column='Description', blank=True, null=True)
Image = models.ImageField(upload_to='path/to/dir/for/images/', db_column='Image', blank=True, null=True)
然后在你的HTML中这样写:
{% for Product in oldProducts %}
<div class="col-lg-4">
<img class="img-circle" src={{ Product.Image.url }} alt="Generic placeholder image" width="140" height="140">
...
</div>
{% endfor %}
[PYTHON 注意事项]:请使用 product_id
而不是 ProductID
等。使用 snake case 约定。这是 Python,不是 JS ;)
阅读 ImageField
或搜索 Google 了解更多信息。