Форум сайта python.su
FishHook
Ок, объясняю. Вам нужно два вида пользователей, которые будут обладать разными правами (если вы хотите использовать систему джанговских прав) и вы хотите иметь возможность в любое время выяснить, что же за пользователь у Вас сейчас послал запрос.Вы заходите в админку, и видите там Группы. Добавляете две группы: продавцы, Покупатели.Теперь каждый из ваших пользователей может быть членом одной из этих групп (или обеих сразу).
Отредактировано bmco@mail.ru (Июнь 26, 2014 00:35:45)
Офлайн
1.
>>>2 группы пользователей - Суперюзер и Обычные пользователи
Не смешивайте в кучу коней и людей. Посмотрите лучше в код модели User и увидите, что у каждого юзера есть BooleanField is_superuser, это никакая не группа, это просто галочка - да/нет.
2.
Они там и так есть. В Вашей собственной модели их нет. ‘NewUser’ object has no attribute ‘groups’.
Чьи проблемы?
3.
>>> не работает на собственной новой модели
Ну откуда мне знать, что там в Вашей самодельной модели? Я говорил о функционале компонентов джанго. Если Вы этот функционал переписываете по своему разумению, то понятно, что стандартные фичи работать не будут, если Вы их не реализуете самостоятельно.
4.
Человек, нагородивший кучу кода знает, что он делает и зачем ему это нужно. Мне кажется, Вы изобретаете велосипед. Зачем Вам понадобилось городить “собственную новую модель пользователя NewUser”? Чего Вам не хватает в модели User, которую предлагает джанга?
Отредактировано FishHook (Июнь 26, 2014 05:57:20)
Офлайн
FishHook
3.>>> не работает на собственной новой моделиНу откуда мне знать, что там в Вашей самодельной модели? Я говорил о функционале компонентов джанго. Если Вы этот функционал переписываете по своему разумению, то понятно, что стандартные фичи работать не будут, если Вы их не реализуете самостоятельно. 4.Человек, нагородивший кучу кода знает, что он делает и зачем ему это нужно. Мне кажется, Вы изобретаете велосипед. Зачем Вам понадобилось городить “собственную новую модель пользователя NewUser”? Чего Вам не хватает в модели User, которую предлагает джанга?
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
# Create your models here.
class FexUserManager(BaseUserManager):
def create_user(self, email, password = None, **kwargs):
if not email:
raise ValueError(_('Users must have an email address'))
user = self.model(
email = FexUserManager.normalize_email(email),
**kwargs
)
user.set_password(password)
user.save(using = self._db)
return user
def create_superuser(self, email, password, **kwargs):
user = self.create_user(email,
password = password,
**kwargs
)
user.is_admin = True
user.save(using = self._db)
return user
class FexUser(AbstractBaseUser):
email = models.EmailField(
max_length = 80,
unique = True,
verbose_name = _('email'),
help_text = _('Example: email@example.com')
)
is_active = models.BooleanField(
default = True,
verbose_name = _('is active')
)
is_admin = models.BooleanField(
default = False,
verbose_name = _('is admin')
)
USERNAME_FIELD = 'email'
objects = FexUserManager()
def get_short_name(self):
return self.email
def __unicode__(self):
return self.email
def has_perm(self, perm, obj=None):
return True
def has_module_perms(self, app_label):
return True
@property
def is_staff(self):
return self.is_admin
class Meta:
verbose_name = _('User')
verbose_name_plural = _('Users')
Офлайн
bmco@mail.ruНет, не правильно. Я в третий раз повторяю: посмотрите в код модели User. От чего она наследуется.
Правильно ли я Вас понял, что в мою новую модель необходимо добавить атрибут groups?
AbstractUser(AbstractBaseUser, PermissionsMixin):
Офлайн