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) # ...
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:
Menggunakan E-mel sebagai Nama Pengguna
Untuk menggunakan e-mel sebagai nama pengguna, anda boleh sama 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()
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!