使用django rest api的表单发布返回405方法不允许

问题描述

带有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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...