视图
def createitem(request):
if request.method == "POST":
form= itemform(request.POST, request.FILES)
if form.is_valid():
form.save()
return Redirect('/items')
else:
form = itemform()
return render(request, 'app/create.html', {'form':form})
如果您发现错误,可以使用模型
class items(models.Model):
name = models.CharField(max_length = 30)
description = models.TextField()
image = models.FileField(upload_to='documents/')
class itemform(ModelForm):
class Meta:
model = items
fields = ['name','description','image']
我已将此添加到设置
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
答案 0 :(得分:2)
def createitem(request):
if request.method == "POST":
form= itemform(request.POST, request.FILES)
if form.is_valid():
form.save()
return Redirect('/items')
else:
form = itemform()
return render(request, 'app/create.html', {'form':form})
答案 1 :(得分:0)
好的,这不是一个直接的答案,而是我用来调试这类问题的方式。
form = ...
import pdb; pdb.set_trace()
if form.is_valid():
...
运行服务器并尝试提交表单。提交后检查终端,调试器将保留导入pdb 然后使用
$ form.errors
另外,请不要使用分号。
答案 2 :(得分:0)
所以我只是将这些线添加到create.html
<form method="post" enctype="multipart/form-data">
你必须声明文件输入的enctype我想