Как связать мою HTML-форму с классом представления в Django
post_form.Html
Это Html-страница с формой для обновления и создания Как мы знаем, класс представления Create и Update в Django использует одну и ту же форму
< form method="post"> {% csrf_token %} <div class="form-group"> <label for="PostInput">PostTitle</label> <input class="form-control" type="text" name="post" placeholder="Name" value="{{ post. postname }}"> </div> <div class="form-group"> <label for="descrInput">Description</label> <input class="form-control" type="text" id="descrInput" placeholder="Description" value="{{ post. description }}"> </div> <input type="submit" value="Save"> </form> Views.py
class CreatePost(CreateView):
model = post
fields = ['title', 'content']
class UpdatePost(UpdateView):
model = post
fields = ['title', 'content']
Сейчас вопрос в том, как я могу связать эту форму с вышеуказанной html-страницей, которая уже имеет форму или поля ввода на самой веб-странице. Я знаю, как это сделать с помощью функций представления, но я не могу найти никаких материалов, учебников по этому вопросу. Любой материал по этому вопросу будет полезен
Вы можете переопределить CreateView().post() и UpdateView().post() методы следующим образом
class CreatePost(CreateView):
model = post
fields = ['title', 'content']
def post(self, request, *args, **kwargs):
# Get your data from post request eg. request.POST['mykey']
return redirect('success_page')
class UpdatePost(UpdateView):
model = post
fields = ['title', 'content']
def post(self, request, *args, **kwargs):
# Get your data from post request eg. request.POST['mykey']
return redirect('success_page')
Примечание : Вы создали свой класс модели post в нижнем регистре, что не является хорошей практикой, всегда называйте класс в CapWords. Поскольку вы написали свой класс в нижнем регистре, python будет рассматривать ваш класс post как post или это может привести к логической ошибке.