2017-03-23 47 views
0

嘿,我希望有人能幫助我。Django從管理員的產品名稱連接圖像

我正在一個電子商務網站上工作,我可以通過django添加每個產品從管理數據庫,但我不能添加圖像,目前代碼添加到每個產品相同的圖像。

{% 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. 
+0

請給出您的模型 –

+0

那就是產品的型號 – Daniiii

回答

0

您使用的是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等使用情況的蛇慣例。這是Python,而不是JS;)

瞭解更多關於ImageField或搜索Google瞭解更多信息。

+0

好吧,現在讓我想到現在在這種方式工作。但是1:因爲圖像不存儲在數據庫中,所以當我將文件上傳到服務器時發生了什麼。 – Daniiii

+0

和2:'圖像'屬性沒有與之關聯的文件。這個錯誤出現了 – Daniiii

+0

好吧,它們存儲在服務器中。你不想那樣?將圖像數據存儲在數據庫中並不是一個好習慣。唯一將被存儲在數據庫中的將是路徑。 –