0

我是django的新手。我正在嘗試將多個圖像添加到像博客文章這樣的django模板。我沒有得到如何去做。請幫幫我。如何在django中添加多個圖像

我沒有得到如何保存在單個圖像領域 ,以及如何將圖像上傳多個圖像

class UserProfile(models.Model): 
    user = models.OneToOneField(User) 
    phone_no = models.CharField(max_length=10, null=True) 
    shop_name = models.CharField(max_length=244, null=True) 
    shop_address = models.CharField(max_length=200,null=True) 
    city = models.CharField(max_length=20, null=True) 
    country = models.CharField(max_length=20, null=True) 
    abn = models.CharField(max_length=11) 
    website = models.CharField(max_length=200, blank=True, null=True) 
    created_at = models.DateTimeField(default=datetime.now, blank=True) 
    updated_at = models.DateTimeField(default=datetime.now, blank=True) 
    Emg_no = models.CharField(max_length=10, null=True,blank=True) 
    payment_date = models.DateTimeField(default=datetime.now, blank=True) 
    area_code = models.CharField(null=True, blank=True, max_length=2) 
    landline_number = models.CharField(null=True, blank=True, max_length=9) 
    status = models.ForeignKey(Status, blank=True, null=True) 
    user_image = models.ImageField(upload_to='user_image') 

    def __str__(self): 
     return self.user.first_name 

    class Meta: 
     db_table = 'registration_userprofile' 

回答

0

您可以創建另一個圖像模型上,並在您的用戶model.Something這樣的外鍵關係:

class Image(models.Model): 
    *image related fields* 

class User(models.Model): 
    *user fields*   
    image = models.Foreignkey(Image) 

請閱讀django多對多字段和一對一字段。 Django Model relationship document.

1

讓我們假設您想要一個與一個Userprofile相關的圖片,並讓用戶一次上傳多個圖片。在你的models.py添加:

class Image(models.Model): 
    user = models.Foreignkey(UserProfile) 
    image = models.ImageField(upload_to='user_images') 

在模板中你做:

<form action="/pic_upload/{{request.user.id}}/" method="post" enctype="multipart/form-data"> 
    {% csrf_token %} 
    <table> 
     <tr> 
     <td>Select Pictures: </td><td><input name="files" type="file" size="50" accept="image/*" multiple> </td> 
     <td><button type="submit"> Upload </button> </td> 
     </tr> 
    </table> 
</form> 

(請注意我上面使用的表結構只是一個例子。)

然後你需要創建視圖來保存圖像,所以在你的views.py中加入:

from django.contrib.auth.decorators import login_required 
    from django.shortcuts import redirect 


    @login_required 
    def pic_upload(request,user_id): 
     user = UserProfile.objects.get(user__id=user_id) 
     for afile in request.FILES.getlist('files'): 
      pic = Picture() 
      pic.user= user 
      pic.image = afile 
      pic.save() 

     return redirect("path_to_where_you_want_to_go_after_upload") 

這只是視圖圖片上傳 - 您還需要一個顯示您的模板。

(注意,這隻適用於用戶已登錄且請求上下文處理器已激活的情況。如果您不需要登錄用戶,您可以爲用戶製作一個選擇框並添加邏輯。)

然後你需要把這些東西掛在urls.py上:

url(r'^pic_upload/(?P<user_id>\d+)/$', pic_upload, name='pic_upload'),