Angular向Django发送Post请求时出现500内部服务器错误
问题
向连接PostgreSQL的Django服务器发送POST请求时触发500(内部服务器错误),但GET、PUT请求可正常执行。
相关代码
Angular 组件文件(component.ts)
export class UsersComponent implements OnInit{ users!: any[] user:any = { fullname:'', email:'', car:'' }; constructor(public userService: UserService, private route: ActivatedRoute){} ngOnInit(): void { this.getUserData() } onCreate(){ this.userService.createUser(this.user).subscribe( (response:any) =>{ console.log('user created succesfully'); this.getUserData(); }, (error:any)=>{ console.error('errror',error); } ); } getUserData(){ this.userService.getUsers().subscribe((data:any) => { this.users = data }) } }
Angular 服务文件(service.ts)
export class UserService { private apiUrl = 'http://127.0.0.1:8000/api/user' constructor(public http: HttpClient) { } createUser(user:any){ return this.http.post(this.apiUrl, user) } }
Django 模型文件(models.py)
class User(models.Model): fullname = models.CharField(max_length=255) email = models.EmailField(max_length=55) car = models.CharField(max_length=255)
排查建议
- 优先查看Django服务器的控制台日志,500错误的详细堆栈信息能直接定位问题(比如字段验证失败、数据库约束冲突、序列化器配置错误等)
- 检查Django REST Framework的序列化器(如果使用),确认POST请求的字段映射是否正确,有没有遗漏必填字段或类型不匹配
- 验证前端POST请求的内容:确保
Content-Type为application/json,发送的字段名和Django模型字段完全一致,没有拼写错误 - 检查PostgreSQL数据库权限:确认Django连接数据库的用户拥有插入数据的权限
- 排查模型字段约束:比如
email字段是否设置了唯一约束,若前端发送重复邮箱会触发数据库报错
内容的提问来源于stack exchange,提问作者Zhad1k
相关产品推荐
相关产品推荐

