Я работаю над созданием веб-сайта с моделью Пользователь , но столкнулся с проблемой. Я очень озадачен тем, как модель User работает в Django.
На моем административном сайте есть два пользователя, один из которых находится в разделе «Аутентификация и авторизация», а другой - в Market. Суперпользователи входят в Аутентификацию один.
Вот мой текущий код:
# market/models.py
from django.db import models
from datetime import date
from PIL import Image
from django.urls import reverse
from django.contrib.auth.models import BaseUserManager, AbstractBaseUser
import uuid # Required for unique id
from django.core.validators import MaxValueValidator, MinValueValidator
class **User**(AbstractBaseUser):
username = models.CharField(primary_key=True, max_length=30, help_text='Enter a unique username.', blank=False)
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
date_of_birth = models.DateField(null=True, blank=True)
email = models.EmailField(max_length=255, unique=True)
phone = models.CharField(max_length=20)
address = models.CharField(max_length=255)
state = models.CharField(max_length=30)
city = models.CharField(max_length=30)
zip_code = models.CharField(max_length=10)
payment_method = models.CharField(max_length=16, default='None')
order_seller = models.CharField(max_length=100, default='None')
order_buyer = models.CharField(max_length=100, default='None')
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
USERNAME_FIELD = 'username'
#REQUIRED_FIELDS = []
# Meta
class Meta:
ordering = ['first_name', 'last_name']
# Method
def __str__(self):
return f'{self.username}'
def get_absolute_url(self):
"""Returns the url to access a particular instances of the model. """
return reverse('user-detail', args=[str(self.username)])
class Order(models.Model):
# id = models.AutoField(primary_key=True)
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, help_text='Unique order number')
# time and date the order was submitted
date_ordered = models.DateTimeField(auto_now_add = True)
# ForeignKey of the buyer
buyer = models.ForeignKey(**User**, on_delete=models.CASCADE, null=True)