Что выдает?
Тоже самое (
Тоже самое что?
Если только этот код без всяких get_form, то вряд ли может выдавать ошибку из первого поста.
Тут же есть model как там и просилось:
Все я нашел код спроблемой, т.е я удаляю после return form_class строку выходит это
Вроде бы все нормально, но после ввода данных нажимаю добавить он его не добавляет
def get_form(self, form_class=None):
"""Return an instance of the form to be used in this view."""
if form_class is None:
form_class = self.get_form_class()
return form_class
это вряд ли корректно потому что она должна вернуть экземпляр класса формы, а не класс.
Это в каком классе у вас вообще? Почему этой функции нет в вашем коде выше?
Я не думаю, что эту функцию вообще надо реализовывать в этом случае, это не имеет никакого смысла, стандартная реализация и так делает что-то похожее используя данные из полей вашего класса или значения по умолчанию/соглашению.
Cначала было вот так
return form_class (**self.get_form_kwargs())
Потом я исправил на
return form_class
Сайт открывается без ошибок но после нажатия добавить обработка идет но данные введенные в форму не появляются в БД и на сайте
Читайте пост выше, это не корректно согласно документации, так что я бы не удивлялся любому странному поведению. https://docs.djangoproject.com/en/3.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_form
и
Создал хеллоу ворлд проект, у меня всё работает по моему примеру без всяких get_form
.
Весь проект:
models.py:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
views.py:
from django.urls import reverse_lazy
from django.views.generic import CreateView, ListView, DetailView
from .models import Post
class PostCreateView(CreateView):
model = Post
fields = ('title', 'content')
success_url = reverse_lazy('index')
class PostListView(ListView):
model = Post
class PostDetailView(DetailView):
model = Post
urls.py:
from django.urls import path
from .views import PostCreateView, PostListView, PostDetailView
urlpatterns = [
path('', PostListView.as_view(), name='index'),
path('create/', PostCreateView.as_view(), name='create'),
path('<int:pk>/', PostDetailView.as_view(), name='show'),
]
У вас в файле view.py в классе BbCreateView написано from_class, а должно быть form_class