我有以下表格:
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Upload</button>
</form>
这会产生一个表格(在[]括号中表示一个按钮):
**Document:**
[Choose File] no file selected
[Upload]
当我使用以下表格时:
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.document }}
<button type="submit">Upload</button>
</form>
我没有在Safari中获得“没有文件选择”部分,但我在chrome中。是否有某种“form.something”允许我在任何浏览器中显示它。
表格如下:
class DocumentForm(forms.ModelForm):
class Meta:
model = Document
fields = ('document', )
模型如下:
class Document(models.Model):
user = models.ForeignKey(User)
document = models.ImageField(upload_to=user_directory_path)
uploaded_at = models.DateTimeField(auto_now_add=True)
手动示例的HTML输出(在chrome中):
<form method="post" enctype="multipart/form-data">
<input type='hidden' name='csrfmiddlewaretoken' value='2ZMTQTumTh5DS4nwVvAZv3IUSpM2o5LB' />
<input id="id_document" name="document" type="file" />
Document
<button type="submit">Upload</button>
</form>
手动示例的HTML输出(在safari中):
<form method="post" enctype="multipart/form-data">
<input type='hidden' name='csrfmiddlewaretoken' value='DTLKigyikubFrJqrh4AHR61Lmkyutrsw' />
<input id="id_document" name="document" type="file" />
Document
<button type="submit">Upload</button>
</form>
自动示例的HTML输出(在safari中):
文件:
上传非常感谢,艾伦。
答案 0 :(得分:0)
如果没有像这样添加,你是否在views.py文件中包含了(request.FILES)。
def view(request):
if request.method == 'POST':
form = DocumentForm(request.POST,request.FILES)
if form.is_valid():
#Then Save your Form