You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django API路由配置报错与404页面问题求助

问题解决方案

1. 解决AttributeError: module 'api.serializers' has no attribute 'UserOutputSerializer'

核心原因

你的api/serializers.py文件中未定义UserOutputSerializer类,同时ViewSet存在两处笔误。

修复步骤

  • 补充UserOutputSerializer定义:打开api/serializers.py,添加用于返回用户数据的序列化器(避免返回敏感字段):
from rest_framework import serializers
from django.contrib.auth import get_user_model

UserModel = get_user_model()

# 保留你已有的UserInputSerializer
class UserInputSerializer(serializers.ModelSerializer):
    password = serializers.CharField(write_only=True)

    class Meta:
        model = UserModel
        fields = ['email', 'first_name', 'last_name', 'password']

# 新增UserOutputSerializer
class UserOutputSerializer(serializers.ModelSerializer):
    class Meta:
        model = UserModel
        fields = ['id', 'email', 'first_name', 'last_name', 'is_active']
  • 修正ViewSet中的笔误:
    1. 将serializers_classes改为serializer_classes(少了一个r,Django REST Framework会读取这个属性来匹配不同动作的序列化器):
    # 原错误代码
    # serializers_classes = {
    #     "create": serializers.UserInputSerializer
    # }
    # 修正后
    serializer_classes = {
        "create": serializers.UserInputSerializer
    }
    
    1. 修改create方法的返回序列化器,避免返回密码字段:
    # 原错误代码
    # response = serializers.UserInputSerializer(user).data
    # 修正后
    response = serializers.UserOutputSerializer(user).data
    

2. 解决移除api路由后的根路径404

父路由中未定义根路径(http://127.0.0.1:8000/)的匹配规则,可通过以下方式处理:

  • 重定向到api路径:在父urls.py中添加根路径规则:
from django.shortcuts import redirect
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api-auth/', include('rest_framework.urls')),
    # 根路径重定向到api
    path('', redirect('api/')),
    path('api/', include('api.urls'))  # 把之前移除的api路由加回来
]
  • 或者如果有自定义首页视图,替换为你的视图函数即可。

3. 关于Broken pipe from ('127.0.0.1', 8441)提示

这是浏览器请求中途中断(比如快速刷新页面)导致的非致命警告,解决前面的核心问题后,该提示会自然消失,无需额外处理。

内容的提问来源于stack exchange,提问作者Blessing Tosin AKINYEMI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 17:15:53