Рубрики
Без рубрики

Как расширить модель пользователя в Django

В предыдущем посте я обсудил, как вы можете создать пользовательскую модель пользователей в Django, но, если вы делаете … Теги с Django, Python, база данных.

В предыдущем посте я обсудил, как вы можете создать пользовательскую модель пользователей в 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”