Rumah > pembangunan bahagian belakang > Tutorial Python > Cara Terbaik Memanjangkan Model Pengguna Django dengan Medan Tersuai?

Cara Terbaik Memanjangkan Model Pengguna Django dengan Medan Tersuai?

Mary-Kate Olsen
Lepaskan: 2024-12-16 13:29:14
asal
262 orang telah melayarinya

How to Best Extend the Django User Model with Custom Fields?

Memperluaskan Model Pengguna Django: Pendekatan Optimum

Apabila memanjangkan model Pengguna Django terbina dalam dengan medan tersuai, dua pendekatan utama menonjol :

1. Menggunakan Harta OneToOneField(Pengguna)

Ini ialah pendekatan Django yang disyorkan dan melibatkan penciptaan model baharu dengan perhubungan satu dengan satu dengan model Pengguna. Model "profil" ini boleh menyimpan maklumat tambahan tentang pengguna.

from django.db import models
from django.contrib.auth.models import User

class UserProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    # Custom fields here, e.g.:
    address = models.CharField(max_length=255)
    phone_number = models.CharField(max_length=15)
    # ...
Salin selepas log masuk

2. Menggantikan dengan Model Pengguna Tersuai

Pendekatan ini melibatkan menggantikan model Pengguna Django sepenuhnya dengan model tersuai yang merangkumi pengubahsuaian yang diingini. Walau bagaimanapun, ia dianggap drastik dan disertakan dengan amaran:

  • Ia boleh memecahkan fungsi Django lain yang bergantung pada model Pengguna.
  • Ia melibatkan penyalinan dan pengubahan modul pengesahan Django.
  • Ia mungkin memerlukan pelaksanaan semula pengesahan mekanisme.

Menggunakan E-mel sebagai Nama Pengguna

Untuk menggunakan e-mel sebagai nama pengguna, anda boleh sama ada:

  • Timpa get_username () kaedah dalam model Pengguna tersuai anda.
  • Gunakan kaedah set_username() untuk mengemas kini nama pengguna sesuatu pengguna sedia ada.

Contoh:

class CustomUser(AbstractUser):

    def get_username(self):
        return self.email

# ...
user = CustomUser.objects.get(username='john@example.com')
user.set_username('jack@example.com')
user.save()
Salin selepas log masuk

Atas ialah kandungan terperinci Cara Terbaik Memanjangkan Model Pengguna Django dengan Medan Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan