[英]Django - Save an uploaded image
我有一個表格,我應該上傳圖像,但我無法保存圖像。 除圖像外,表單中的其他所有內容都能正常工作。
我確定我的addGame
方法存在一些問題,但我已經嘗試了幾十種不同的方法而沒有運氣。
我已經閱讀了文檔 ,但看起來我仍然做錯了,因為圖像永遠不會被保存。
(正如旁注:我正在使用枕頭來裁剪圖像,而且我不確定我是否也正確地做到了這一點,但我最近剛補充說,因為圖像沒有保存我有無法知道這是否正確實現。當我嘗試上傳工作時,我將離開裁剪部分注釋掉。)
forms.py
class GameForm(forms.ModelForm):
image = forms.ImageField()
code = forms.Textarea()
deleteGame = forms.BooleanField(required=False, widget=forms.HiddenInput())
class Meta:
model = Game
fields = ('title', 'image', 'description', 'requirements', 'code', 'deleteGame')
views.py
:
@login_required
def add_game(request):
user = request.user
if request.method == 'POST':
form = GameForm(request.POST, request.FILES)
if form.is_valid():
form = form.save(commit=False)
image = request.FILES['image']
box = (200, 200, 200, 200)
cropped = image.crop(box)
form.image = cropped
form.user = request.user
form.save()
return HttpResponseRedirect('/userprofile')
else:
form = GameForm()
args = {}
args.update(csrf(request))
args['user'] = user
args['form'] = form
return render_to_response('addgame.html', args)
models.py
class Game(models.Model):
user = models.ForeignKey(User, blank=True)
title = models.CharField(max_length=256)
image = models.ImageField(upload_to='games', blank=True)
description = models.CharField(max_length=256)
requirements = models.CharField(max_length=256)
code = models.TextField()
deleteGame = models.BooleanField(default=False)
def __unicode__(self):
return self.title
我的媒體設置如下所示:
MEDIA_ROOT = 'media/'
MEDIA_URL = '/media/'
文件結構:
如果我通過管理門戶添加圖像,它會正確保存,但我在日志中收到如下錯誤:
找不到:/media/games/Screen_Shot_2015-12-29_at_1.03.05_AM.png
如果您打算將文件與表單數據一起發送,則模板中的form
標記需要enctype="multipart/form-data"
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.