问题描述
带有django Rest Api的表单发布返回“ 405方法不允许”。 网址“ home”指的是专门为帖子调用创建的CalendarGroupCreate类,该类调用form.html文件,用户可以在其中填写表单。但不幸的是,我不明白为什么它不起作用。
在urls.py中:
path('homeProva1/group/new/',views.CalendarGroupCreate.as_view(),name='group_newprova1'),#NUOVO GRUPPO
path('homeProva1/',views.CalendarGroupList.as_view(),name='home'),
在views.py中:
class CalendarGroupCreate(APIView):
renderer_classes = [TemplateHTMLRenderer]
template_name = 'cal/form.html'
"""
Create a new calendargroup.
"""
def post(self,request):
calendargroup = get_object_or_404(CalendarGroups)
serializer = CalendarGroupsSerializer(calendargroup,data=request.data)
if not serializer.is_valid():
return Response({'serializer': serializer,'calendargroup': calendargroup})
serializer.save()
return redirect('home')
在form.hmtl中:
{% load rest_framework %}
<form action="{% url 'group_newprova1' %}" method="POST">
{% csrf_token %}
{% render_form serializer %}
<input type="submit" value="Save">
</form>
在models.py中:
class CalendarGroups(models.Model):
name = models.CharField(max_length = 155,blank=True,null=True,unique=True)
def __str__(self):
#self.name = name
return str(self.name)
@property
def get_html_url(self):
url = reverse('',args=(self.id,))
return f'<a href="{url}"> {self.name} </a>'
在serializer.py中:
class CalendarGroupsSerializer(serializers.ModelSerializer):
class Meta:
model = CalendarGroups
fields = ['id','name']
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)