Проблема с формами в Django. ImproperlyConfigured at /add/: BbCreateView is missing a QuerySet

Здравствуйте))
Вот начал изучать Django Python и возникла ошибка((
Перенаправил ссылку на файл HTML предворительно создав его, затем прописал ссылку в самом главном файле index, перешел на сайт появилась ссылка добавить собственно что мне и надо, но после того как я нажал на нее у меня появляется окошко ImproperlyConfigured at /add/
BbCreateView is missing a QuerySet. Define BbCreateView.model, BbCreateView.queryset, or override BbCreateView.get_queryset(). Как мне исправить это ??? Самое странное что ошибок вообще не выдает(
Буду благодарен всем за помощь))
Все остольное скину в ЛС так как на сайте стоят ограничения новым пользователям, и за это тоже буду вам блaгодарен
Собственно вот сама ошибка при нажатии на ссылку Добавить

**Это файл views.py**
from django.http import HttpResponse
from django.template import loader
from django.shortcuts import render
from django.views.generic.edit import CreateView
from django.urls import reverse_lazy

from .forms import BbForm
from .models import Rubric
from .models import Bb

class BbCreateView(CreateView):
    template_name = 'sat1/create.html'
    from_class = BbForm
    success_url = reverse_lazy('index')

def get_context_data(self, **kwargs):
    context = super() .get_context_data (**kwargs)
    context['rubrics'] = Rubric.objects.all()
    return context

def index(request):
    s = 'Список объявлений\r\n\r\n\r\n'
    for bb in Bb.objects.order_by('-published'):
        s += bb.title + '\r\n' + bb.content + '\r\n\r\n'
    bbs = Bb.objects.all()
    rubrics = Rubric.objects.all()
    context = {'bbs': bbs, 'rubrics': rubrics}
    return render(request, 'sat1/index.html', context)

def by_rubric(request, rubric_id):
    bbs = Bb.objects.filter(rubric=rubric_id)
    rubrics = Rubric.objects.all()
    current_rubrics = Rubric.objects.get(pk=rubric_id)
    context = {'bbs': bbs, 'rubrics': rubrics, 'current_rubric': current_rubrics}
    return render(request, 'sat1/by_rubric.html', context)
**Это файл index.py**
{% extends "layout/basic.html" %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Главная - Доска объявлений</title>
</head>
<body>
    <h1>Объявления</h1>
<div>
    <a href="{% url 'index' %}">Главная</a>
    <a href="{% url 'add' %}">Добавить</a>
    {% for rubric in rubrics %}
    <a href="{% url 'by_rubric' rubric.pk %}">{{ rubric.name }}</a>
    {% endfor %}
</div>
    {% block content %}
    {% for bb in bbs %}
    <div class="b">
    <h2>{{ bb.title }}</h2>
    <p>{{ bb.content }}</p>
        <p><a href="/sat1/ {{ bb.rubric.pk }}/"> {{ bb.rubric.name }}</a></p>
    <p>{{ bb.published|date:"d.m.Y H:i:s" }}</p>
    </div>
    {% endfor %}
    {% endblock %}
</body>
</html>
**Это файл urls.py в файле самого проекта**
from django.urls import path
from .views import index, by_rubric, BbCreateView

urlpatterns = (
    path('add/', BbCreateView.as_view(), name='add'),
    path('<int:rubic_id>/', by_rubric, name='by_rubric'),
    path('', index, name='index'),
)

на этом форуме?
Можно просто загрузить архив на яндекс.диск, гугл.драйв и т.п. и дать ссылку.

так а это что?)


А в BbCreateView что? Откуда он?

ЗЫ код лучше выкладывать не скринами, а кнопкой Код. FAQ по функциональности форума

Я исправил теперь весь код доступен к просмотру )

Я с Джанго давно не сталкивался, как вариант исправления гугл предлагает установить свойство model.

class BbCreateView(CreateView):
    model = Bb
    ..........

К большому сожелению это не исправило мою ошибку (

Судя по примерам и документации еще надо fields указать. Хотя может это другая ошибка была бы.

https://riptutorial.com/django/example/11709/django-class-based-views--example-of-createview

https://docs.djangoproject.com/en/3.0/ref/class-based-views/mixins-editing/#django.views.generic.edit.ModelFormMixin.fields

A list of names of fields. This is interpreted the same way as the Meta.fields attribute of ModelForm .

This is a required attribute if you are generating the form class automatically (e.g. using model ). Omitting this attribute will result in an ImproperlyConfigured exception.

Я прописал models.py файл еще до обращения на этот форум)

from django.db import models

class Bb(models.Model):
    title = models.CharField(max_length=50)
    content = models.TextField(null=True, blank=True, verbose_name='Описание')
    price = models.FloatField(null=True, blank=True, verbose_name='Цена')
    published = models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Опубликовано')
    rubric = models.ForeignKey('Rubric', null=True, on_delete=models.PROTECT, verbose_name='Рубрика')

    class Meta:
        verbose_name_plural = 'Обьявления'
        verbose_name = 'Объявление'
        ordering = ['-published']

class Rubric(models.Model):
    name = models.CharField(max_length=20, db_index=True, verbose_name='Название')
    def _str_(self):
        return self.name

    class Meta:
        verbose_name_plural='Рубрики'
        verbose_name = 'Рубрику'
        ordering = ['name']

Так а это причем? fields в BbCreateView надо.

Нечего не выходит, попробую просто все заного переделать может поможет

Вот нашел ошибку
Ошибка это последняя строка return, вот удалю ее и все ок заходит на страницу, но там нету формы заполнения а после добавить опять ошибка
Теперь не знаю как ее исправить, твоя помощь мне бы не помешала ))

    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 (**self.get_form_kwargs())

get_form вроде вообще не нужен в простых случаях.

И в коде выше его не было.

Покажите весь текущий код BbCreateView.

from django.http import HttpResponse
from django.template import loader
from django.shortcuts import render
from django.views.generic.edit import CreateView
from .forms import BbForm

from .models import Bb
from .models import Rubric

def index (request):
    template = loader.get_template('Spam/index.html')
    bbs = Bb.objects.all()
    rubrics = Rubric.objects.all()
    context = {'bbs' : bbs, 'rubrics' : rubrics}
    return render(request, 'Spam/index.html', context)
    s = 'Список объявлений\r\n\r\n\r\n'
    for bb in Bb.objects.order_by('-published'):
        s += bb.title + '\r\n' + bb.content + '\r\n\r\n'
    return HttpResponse(template.render(context, request))

def by_rubric(request, rubric_id):
    bbs = Bb.objects.filter(rubric=rubric_id)
    rubrics = Rubric.objects.all()
    current_rubric = Rubric.objects.get (pk=rubric_id)
    context = {'bbs' : bbs, 'rubrics' : rubrics, 'current_rubric' : current_rubric}
    return render(request, 'Spam/by_rubric.html', context)

class BbCreateView(CreateView):
    template_name = 'Spam/create.html'
    form_class = BbForm
    success_url = '/Spam/'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['rubrics'] = Rubric.objects.all()
        return context

Так я ж говорил

Извиняюсь за тупость, а что в нем прописать ?

поля модели, которые надо вводить.

image

ну и + это:

Не помогло
Ошибка конкретно в этом, мне сам Django на нее указал
Т.е я ее удаляю и выходит сайт

 return form_class(**self.get_form_kwargs())

В вашем коде выше нет get_form.

И я ж говорю

А что тогда мне делать (( Забрасывать на долгий ящик не хочу

Так где (и зачем) у вас get_form-то?


Сделайте просто по базовому примеру для начала без всего лишнего.

from django.db import models

class Bb(models.Model):
    title = models.CharField(max_length=50)
    content = models.TextField(null=True, blank=True, verbose_name='Описание')
    price = models.FloatField(null=True, blank=True, verbose_name='Цена')
from django.views.generic.edit import CreateView
from .models import Bb

class BbCreateView(CreateView):
    model = Bb
    fields = ('title', 'content', 'price')
from django.urls import path
from .views import index, BbCreateView

urlpatterns = (
    path('add/', BbCreateView.as_view(), name='add'),
    path('', index, name='index'),
)

Не помогает (