В предыдущем посте я обсудил, как вы можете создать пользовательскую модель пользователей в Django, но, если вы не хотите создавать пользовательский.
В этом случае вы можете просто продлить пользовательскую модель с онитутной моделью.
- Мы можем легко добавить другое поле, такое как местоположение, дата рождения и т. Д.
Создать проект Django
Настройте вашу виртуальную среду и создайте проект Django.
Примечание – Установка кода доступна на предыдущем посте.
Расширение модели пользователя
Импортируйте пользовательскую модель из “django.contrib.auth.models”, и мы создадим другую модель, которая будет относиться к этой модели пользователей
from django.db import models from django.contrib.auth.models import User from django.db.models.base import Model from django.db.models.deletion import CASCADE # Create your models here. class ExtendUser(models.Model): r = models.OneToOneField(User,on_delete=models.CASCADE) date_of_birth = models.DateField(null=True) city = models.CharField(max_length=30) def __str__(self): return self.r.username
Добавьте эту модель к admin.py
Показывая данные
Теперь вопрос в том, как мы можем получить доступ к этим данным и показывать его на Frontend.
Это просто..
В просмотре. Пайный файл создал одну функцию, которая отправит данные в виде контекста.
def home(request): data = request.user return render(request,'core/index.html',{'data':data})
Теперь в Index.html вы можете получить доступ к этим данным
{{data.username}}
{{data.extenduser.city}}
{{data.extenduser.date_of_birth}}
Господин
- По этому методу вы не можете изменить метод первичного входа в систему, которое является именем пользователя.
Вот github repo для кода
kritebh/extend-user-model-django
Как расширить модель пользователя в Django
Оригинал: “https://dev.to/kritebh/how-to-extend-user-model-in-django-e9g”