我有一个不会产生(某些)HTML(应该)代表模型字段的模型。正如您从底部的输出中看到的那样,它只是输出一个空白行,它应该输出标题,并且可能是文件字段的浏览按钮(或其他东西?)。
#views.py
def upload_file(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
else:
form = UploadFileForm()
return render_to_response('files/upload_file.html', { 'form': form })
#models.py
from django import forms
from django.db import models
from django.forms import ModelForm
class UploadFile(models.Model):
title = forms.CharField(max_length = 50)
theFile = forms.FileField()
def __unicode__(self):
return str(title)
class UploadFileForm(ModelForm):
class Meta:
model = UploadFile
#upload_file.html
<form action="" method="POST" enctype="multipart/form-data">
{{ form }}
<input type="submit" value="Upload File">
</form>
#The HTML output
<form action="" method="POST" enctype="multipart/form-data">
<input type="submit" value="Upload File">
</form>
答案 0 :(得分:5)
实际上第二个想到你的错误在于宣告你的模型UploadFile(由于缺乏响应而在重复检查之后)。你应该使用models.CharField而不是forms.CharField。因此,您的模型没有任何内容;因此,ModelForm没有任何字段(如果某些高级用户想要将您最终想要使用的表单字段附加到模型,则不会出现错误)。您还需要为FileField提供upload_to位置,主要是您的媒体目录。
class UploadFile(models.Model):
title = models.CharField(max_length = 50)
theFile = models.FileField(upload_to="files/")
def __unicode__(self):
return str(title)