Я создаю блог-сайт, который каждый пользователь не может публиковать более чем в 3 блогах
поэтому я написал это в файле form.py, чтобы он мог проверить количество блогов перед отправкой
это код формы
class BlogForm(forms.ModelForm):
blog=forms.CharField(label='',
widget=forms.Textarea(
attrs={'placeholder': "Your blog",
"class": "form-control",
}
))
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user')
super(BlogForm, self).__init__(*args, **kwargs)
def clean(self):
cleaned_data=super(BlogForm, self).clean()
user=cleaned_data.get(self.request.user)
if Blog.objects.filter(user=user).count()>=3:
raise forms.ValidationError("You have exceeded limit.")
class Meta:
model=Blog
fields = ['user',
'blog',
'tags']
My Class Based View для создания блога
class BlogCreateView(FormUserNeededMixin,CreateView):
form_class = BlogForm
template_name = 'blog/createview.html'
success_url = reverse_lazy('home')
form = BlogForm(user=request.user)
Ожидаемый результат. В четвертом сообщении блога того же зарегистрированного пользователя «Вы превысили лимит». эта ошибка должна появиться
Факт: у объекта 'BlogForm' нет атрибута 'request', появляется эта ошибка