Не получается записать новые данные в БД через форму Django
Есть проблема с заполнением БД новыми данными через форму на сайте созданном на django. Вот код с views.py
from .models import Columbs
from .forms import ColumbsForm
def index(request):
count = Columbs.objects.all()
return render (request, 'firstapp/index.html', {'count': count})
def create(request):
error = ''
if request.method == 'POST':
form = ColumbsForm(request.POST)
if form.is_valid():
form.save()
return redirect('index')
else:
error = 'ФОРМА НЕ ВЕРНА'
form = ColumbsForm()
data = {
'form': form,
'error': error
}
return render(request, 'firstapp/create.html', data)
Вот код с urls.py
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('fisrtapp.urls') )
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Также с models.py
from django.db import models
class Columbs(models.Model):
image = models.ImageField('Изображение', upload_to=' ')
size = models.CharField('Размер', max_length=250,null=True, blank=True)
name = models.CharField('Название', max_length=250, null=True, blank=True)
price = models.IntegerField('Цена')
priceafterseils = models.IntegerField('Цена от 100к')
def __str__(self):
return self.name
И наконец, код html страницы
{% extends "firstapp/layout.html" %}
{% block title%}Форма по добавлению{% endblock %}
{% block content%}
<div class = "features">
<h1>Форма по добавлению</h1>
<form method="post">
{% csrf_token %}
{{ form.image }} <br>
{{ form.name }} <br>
{{ form.size }} <br>
{{ form.price }} <br>
{{ form.priceafterseils}} <br>
<span>{{error}}</span>
<button class="btn btn-success" type="submit">Добавить</button>
</form>
</div>
{% endblock %}
Заранее прощу прощение за, возможно, глупый вопрос. В колледже дали задание, при этом не объясняя теорию.
Ответы (1 шт):
Автор решения: Tim-Tam
→ Ссылка
Вы не привели главного, что у Вас лежит в forms.py и как определен класс ColumbsForm
BTW path('', include('fisrtapp.urls')
Стартовую страницу лучше определить сразу каким то методом, чтобы потом было проще, а include подключать для какого-то отдельного приложения или направления