html - Uploading A file in django with ModelForms -
i have been hacking away @ project many hours , cannot figure out how create simple file upload app. have looked @ tutorials none quite apply situation , cant code right. know code have @ point wont run hoping somone might able push me in right direction have. know not great im getting frustrated , hope views.py thank much. thank in advance!
models.py
from django.db import models django.contrib.auth.models import user django.forms import modelform class worksheet(models.model): worksheet_name = models.charfield(max_length= 150, default = true) creator = models.foreignkey(user, default = true) worksheet_file = models.filefield(upload_to = 'worksheets', default = true) number_of_stars = models.positiveintegerfield(default = true) category = models.charfield(max_length = 100, default = 0) class uploadworksheetform(modelform): class meta: model = worksheet views.py
from django.shortcuts import render, render_to_response, httpresponseredirect django.conf import settings django import http models import worksheet forms import uploadworksheetform def upload(request): template = 'upload.html' if request.method == 'post': if 'file' in request.files: file = request.files['file'] filename = file['filename'] fd = open('%s/%s' % (settings.media_root, filename), 'wb') fd.write(file['content']) fd.close() return http.httpresponseredirect('upload_success.html') else: form = uploadworksheetform() return render_to_response(template, {'form': form}) return render(request, 'upload.html', {'form': form}) upload.html
<!doctype html> <html> <head> <title>wsd upload</title> </head> <body> <h1>upload worksheet</h1> {% block body %} <form action="." method="post" enctype="multipart/form-data"> {{ form }} <type="submit" value = "upload"/> </form> {% endblock %} </body> </html> if there else need please tell me. thank thank thank you!
views.py
def upload(request): template = 'upload.html' if request.method == 'post': form = uploadworksheetform(request.post, request.files) if form.is_valid(): form.save() return httpresponseredirect('upload_success.html') <---change valid url not template name else: form = uploadworksheetform() return render(request, 'upload.html', {'form': form}) template
................... {% block body %} <form action="." method="post" enctype="multipart/form-data"> {% csrf_token %} {{ form.as_p }} <input type="submit" value = "upload"/> </form> {% endblock %} ....................
Comments
Post a Comment