Ну, прошло некоторое время с 2008 года, и пришло время для нового ответа Начиная с Django 1.5 вы сможете создавать пользовательский класс User. На самом деле, в то время, когда я пишу это, оно уже объединено с мастером, так что вы можете попробовать его.
Есть некоторая информация об этом в документах или, если вы хотите углубиться в это, в этот коммит .
Все, что вам нужно сделать, это добавить AUTH_USER_MODEL
к настройкам, указав путь к пользовательскому классу пользователя, который расширяет либо AbstractBaseUser
(более настраиваемая версия), либо AbstractUser
(более или менее старый пользовательский класс, который вы можете расширить).
Для людей, которым лень кликать, вот пример кода (взят из документов ):
from django.db import models
from django.contrib.auth.models import (
BaseUserManager, AbstractBaseUser
)
class MyUserManager(BaseUserManager):
def create_user(self, email, date_of_birth, password=None):
"""
Creates and saves a User with the given email, date of
birth and password.
"""
if not email:
raise ValueError('Users must have an email address')
user = self.model(
email=MyUserManager.normalize_email(email),
date_of_birth=date_of_birth,
)
user.set_password(password)
user.save(using=self._db)
return user
def create_superuser(self, username, date_of_birth, password):
"""
Creates and saves a superuser with the given email, date of
birth and password.
"""
u = self.create_user(username,
password=password,
date_of_birth=date_of_birth
)
u.is_admin = True
u.save(using=self._db)
return u
class MyUser(AbstractBaseUser):
email = models.EmailField(
verbose_name='email address',
max_length=255,
unique=True,
)
date_of_birth = models.DateField()
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
objects = MyUserManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['date_of_birth']
def get_full_name(self):
# The user is identified by their email address
return self.email
def get_short_name(self):
# The user is identified by their email address
return self.email
def __unicode__(self):
return self.email
def has_perm(self, perm, obj=None):
"Does the user have a specific permission?"
# Simplest possible answer: Yes, always
return True
def has_module_perms(self, app_label):
"Does the user have permissions to view the app `app_label`?"
# Simplest possible answer: Yes, always
return True
@property
def is_staff(self):
"Is the user a member of staff?"
# Simplest possible answer: All admins are staff
return self.is_admin
Ну, Ubuntu поддерживает другие форматы лучше, чем NTFS , но Windows читает только NTFS и FAT32 ... на самом деле у вас нет другого выбора, кроме NTFS. FAT32 плохая идея. Вы не должны иметь возможность копировать файлы размером более 4 ГБ в раздел. Максимальный размер файла в разделах FAT32 составляет (2 ^ 32) -1 байт или на один байт меньше 4 ГБ.
Короче говоря, NTFS - это простой путь:)
NTFS будет вашим лучшим вариантом для двойной загрузки, несмотря на то, что другие варианты лучше.
Ext2 / 3/4 является файловой системой по умолчанию для Ubuntu и поддерживается в Windows, но вам может потребоваться сторонний инструмент для включения, как описано выше.
К вашему сведению, рекомендуем установить Windows 1st, затем установить дистрибутив Xubuntu / Linux, чтобы загрузчик Grub мог управлять параметрами загрузки при включении вашей системы.
Мой опыт говорит, что это зависит ... Ubuntu (и большинство Linux-систем) поддерживает NTFS через ntfs-3g. Я видел, что его производительность немного ниже, чем у нативного ext2 / 3/4. Если вы планируете использовать Linux большую часть времени (или вы будете делать большую часть записи данных в Linux), я рекомендую отформатировать раздел данных в ext4 и установить Ext2Fsd в Windows.
Если вы планируете использовать Windows большую часть времени, NTFS - это то, что вам нужно.
Вы также можете использовать Ext2Fsd , который беспрепятственно включает поддержку Ext2 / 3/4 в Windows. Я использовал его в течение нескольких лет, и он работал как шарм.
Ext2fsd
работает, это не полностью поддерживает ext4
. Обычно, этот isn' t проблема, но поэтому я рекомендовал бы файловую систему, которую и Linux и Windows полностью поддерживают, конкретно NTFS
.
– ya_dimon
08.05.2020, 06:18
ext4
на самом деле значение по умолчанию для Ubuntu. Так не, нет никакой потребности установить его на Xubuntu
– Thomas Stracke
08.05.2020, 06:20