Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django CreateAPIView未显示创建表单_Django_Django Rest Framework_Django Views - Fatal编程技术网

Django CreateAPIView未显示创建表单

Django CreateAPIView未显示创建表单,django,django-rest-framework,django-views,Django,Django Rest Framework,Django Views,在使用Django REST框架时,我遇到了一个相当大的问题。 我的问题是这样的: 我目前在serializers.py上拥有的内容: class TaskCreateSerializer(serializers.ModelSerializer): # Create class Meta: model = Task fields = ('title') 在视图中.py: class TaskCreateAPIView(CreateAPIView):

在使用Django REST框架时,我遇到了一个相当大的问题。 我的问题是这样的:

我目前在serializers.py上拥有的内容:

class TaskCreateSerializer(serializers.ModelSerializer):  # Create
    class Meta:
        model = Task
        fields = ('title')
视图中.py

class TaskCreateAPIView(CreateAPIView):  # Create
    queryset = Task.objects.all()
    serializer_class = TaskCreateSerializer
path('tasks/create/', TaskCreateAPIView.as_view(), name='create_tasks')
url.py

class TaskCreateAPIView(CreateAPIView):  # Create
    queryset = Task.objects.all()
    serializer_class = TaskCreateSerializer
path('tasks/create/', TaskCreateAPIView.as_view(), name='create_tasks')
所以基本上我不能创建任何任务对象

我尝试的是:

class TaskCreateSerializer(serializers.ModelSerializer):  # Create
    title = serializers.CharField()  # New line (does not work)
    class Meta:
        model = Task
        fields = ('title')

提前谢谢

字段元组中缺少逗号。使用列表或('title',)。否则,在Python中,它只是一个括号中的字符串。也许这就是问题所在。此外,您还必须在右上角的下拉列表中选择POST方法。
刚刚注意到,您确定URL的“v1”部分吗?可能它不应该在那里,看起来这个URL根本没有被解析。

('title',)或'title'没有解决问题。我确信“v1”是URL的一部分。您提到的下拉列表中没有POST方法选项您可以添加路线设置的相关部分吗?您是否有其他以/任务开始的路线?我的想法是,您的DetailView放在CreateView之前并捕获URL,因为它有tasks/,然后它找不到id为“create”的任务。哇,就是这样!多谢各位!更改为“create/task/”等其他url解决了我的问题