问题描述
我是Django的新手。我正在尝试练习创建“基于原始更新类的视图”,但会遇到错误“不允许使用方法(POST)”。有人可以帮我吗?
我已经按部就班了,但结果是一样的。我也尝试了很多方法来解决,但仍然无法解决。我真的很想知道问题所在。我非常感谢有人帮我解决这个问题。
view.py
from django.shortcuts import render,get_object_or_404
from django.views import View
from .models import Client
from .forms import ClientFrom
class ClientUpdateView(View):
template_name = "clients/client-update.html"
def get_object(self):
id = self.kwargs.get('id')
obj = None
if id is not None:
obj = get_object_or_404(Client,id=id)
return obj
def get(self,request,id=None,*args,**kwargs):
#GET Method
context = {}
obj = self.get_object()
if obj is not None:
form = ClientFrom(instance=obj)
context['object'] = obj
context['form'] = form
return render(request,self.template_name,context)
def post(self,**kwargs):
#POST Method
context = {}
obj = self.get_object()
if obj is not None:
form = ClientFrom(request.POST,instance=obj)
if form.is_valid():
form.save()
context['object'] = obj
context['form'] = form
return render(request,context)
forms.py
from django import forms
from .models import Client
class ClientFrom(forms.ModelForm):
class Meta:
model = Client
fields = [
'Name','Address','Contact',]
client-update.html中的表单
{% extends 'clienthead.html' %}
{% block content %}
<h1>Update: {{object.id}} - {{ object.Name }}</h1>
<form action='.' method='POST'> {% csrf_token %}
{{ form.as_p }}
<input type='submit' value='Save' />
</form>
{% endblock %}
urls.py
from django.urls import path
from .views import (
ClientUpdateView,)
app_name = 'client'
urlpatterns = [
path('<int:id>/adjust',ClientUpdateView.as_view(),name='client-adjust'),]
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)