在django默认user表基础上改为自定义user表
时间: 2024-05-15 19:16:22 浏览: 17
1. 创建一个新的app,例如命名为accounts,使用命令:`python manage.py startapp accounts`
2. 在accounts/models.py中定义自定义user表,例如:
```python
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
# 添加自定义字段
phone = models.CharField(max_length=20)
```
注意,需要继承自`AbstractUser`,而不是`User`,因为`AbstractUser`已经包含了`User`的所有字段,同时也允许我们添加自定义字段。
3. 在settings.py中指定AUTH_USER_MODEL为自定义user表,例如:
```
AUTH_USER_MODEL = 'accounts.CustomUser'
```
4. 迁移数据库,使用命令:`python manage.py makemigrations`,然后`python manage.py migrate`。
5. 在其他app中使用自定义user表,例如:
```python
from django.contrib.auth import get_user_model
User = get_user_model()
class Post(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
content = models.TextField()
```
这里需要使用`get_user_model()`获取自定义user表,而不是直接引用`User`。
相关推荐
![sql](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)