When I upload the file I get a "POST /submit/ HTTP/1.1" 200 604. When I check to see if the file uploaded I can't find it.
Setting File includes:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
Models:
from django.db import models
class Document(models.Model):
description = models.CharField(max_length=255, blank=True)
document = models.FileField(upload_to='documents/')
uploaded_at = models.DateTimeField(auto_now_add=True)
Forms:
from django import forms
from mysite.uploads.models import Document
class DocumentForm(forms.ModelForm):
class Meta:
model = Document
fields = ['description', 'document']
Views:
from django.shortcuts import render
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from mysite.uploads.models import Document
from mysite.uploads.forms import DocumentForm
def model_upload(request):
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
form.save(commit=True)
return HttpResponseRedirect(reverse('uploadindex'))
else:
form = DocumentForm()
return render(request, 'uploads/index.html', {
'form': form
})
Urls:
from django.conf.urls import url
from mysite.uploads import views
urlpatterns = [
url(r'^$', views.model_upload, name='uploadindex'),
]
Templates: I am using the multipart/form-data, not sure about why the file wont upload.
<html>
<body>
<form action="{% url "uploadindex" %}"
method="post"encytpe="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Upload</button>
</form>
</body>
</html>
...
if form.is_valid():
form.save(commit=True)
return HttpResponseRedirect(reverse('uploadindex'))
else:
print form.errors
...
It will show you errors in case your document
field have any error.