Возможно, просто еще один глупый вопрос для начинающих:
У меня проблемы с перезаписью формы модели django, которая в настоящее время использует следующий код в views.py.
Код ниже работает хорошо!
class PostCreateView(LoginRequiredMixin, CreateView):
model = Post
fields = ['title', 'content']
### want this instead of line 1 and 2 above --> form_class = PostCreateForm()
view_args = collections.namedtuple('view_args', ['page_title'])
view_args = view_args(page_title="Create Post")
def get_context_data(self, *args, **kwargs):
self.tgt_url_args = MyHelper.parse_tgt_url(self)
context = super(PostCreateView, self).get_context_data(*args, **kwargs)
context.update(MyHelper.get_context_metadata(self, self.tgt_url_args, PostCreateView.view_args))
return context
def form_valid(self, form):
form.instance.author = self.request.user
tgt_url_args = MyHelper.parse_tgt_url(self)
blog_article = Article.objects.get(pk=tgt_url_args.get('Article', '0'))
form.instance.article_field = blog_article
return super().form_valid(form)
Однако я хотел бы перезаписать форму, чтобы добавить заполнитель в поля. Поэтому я заменяю строки 1 и 2 на:
form_class = PostCreateForm()
Я также добавил следующие слова в forms.py:
from django import forms
from . models import Post
class PostCreateForm(forms.ModelForm):
class Meta:
model = Post
fields = ['title', 'content']
print('imported PostCreateForm')
Однако, когда я импортирую и запускаю это, я получаю следующую ошибку:
'PostCreateForm' object is not callable
Что я здесь не так делаю?