# 类型错误：期望整数但收到字符串

- **ID:** `python/django-url-parameter-type`
- **领域:** python
- **类别:** type_error
- **验证级别:** ai_generated
- **修复率:** 80%

## 根因

Django URL 路径参数默认为字符串，但视图函数要求整数

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| 3.2 | active | — | — |
| 4.0 | active | — | — |
| 5.0 | active | — | — |

## 解决方案

1. **在 URL 模式中使用 int 转换器** (100% 成功率)
   ```
   path('users/<int:id>/', views.user_detail)
   ```
2. **在视图中安全转换** (90% 成功率)
   ```
   def user_detail(request, id): id = int(id) if isinstance(id, str) else id
   ```

## 无效尝试

- **在视图中用 int() 强制转换** — 如果字符串不是数字，int() 会抛出 ValueError (50% 失败率)
- **修改 URL 模式使用字符串类型** — 可能破坏其他依赖整数的逻辑 (40% 失败率)
