Я хочу сохранить изображение (проект testproj).
Код (который ниже), не работает (1.10.5).
А именно:
1) Ввожу текст и выбираю файл:
2) Нажимаю кнопку
3) Получается:
И не перекидывает на "страницу успеха" (главную страницу). Вроде как ругается на изображение.
Почему?
dzmitry@mycomp:~/PycharmProjects/testproj$ tree -I *.*'~'\|*.pyc\|*cache*
.
├── app
│ ├── admin.py
│ ├── apps.py
│ ├── forms.py
│ ├── __init__.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── db.sqlite3
├── manage.py
├── templates
│ └── template.html
├── testproj
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── uploads
└── photos
6 directories, 16 files
testproj/urls.py
from django.conf.urls import url
from django.contrib import admin
from app import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', views.index, name="index-page-view"),
url(r'^addperson$', views.CreatePersonView.as_view(), name='create-person-view')
]
app/views.py
from django.http.response import HttpResponse
from django.views.generic import CreateView
from .forms import CreatePersonForm
class CreatePersonView(CreateView):
template_name = 'template.html'
form_class = CreatePersonForm
success_url = '/'
def index(HttpRequest):
return HttpResponse("Главная страница")
app/models.py
from django.db import models
class Person(models.Model):
name = models.CharField('Имя', max_length=40)
image = models.ImageField('Фото', upload_to='photos/%Y/%m/%d/')
app/forms.py
from django.forms.models import ModelForm
from .models import Person
class CreatePersonForm(ModelForm):
class Meta:
model = Person
fields = '__all__'
templates/template.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="{% url 'create-person-view' %}" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Создать щегла" />
</form>
</body>
</html>
добавление в testproj/settings.py
...
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
...
добавление в testproj/settings.py (сделано pycharm)
TEMPLATES = [
...
'DIRS': [os.path.join(BASE_DIR, 'templates')]
...
]
Updated 23 Feb. 2017, 17:41 by Dzmitry.