
Alexander
19.11.2016
12:05:47
если они будут там одновременно выполняться
они будут ждать, пока данная транзакция не отпустит эту строчку

Daniil
19.11.2016
12:06:22
Вопрос: я заметил, что встроенные формы Django для создания пользователя работают только с оригинальной моделью User, а у меня кастомизированная, что мне делать?

.
19.11.2016
12:06:31

Google

Daniil
19.11.2016
12:06:51

IНЖАЛИД DPИЖЕ
19.11.2016
12:08:45

.
19.11.2016
12:09:00
я хочу, чтобы при удалении объекта через админку у меня крутился счетчик

Daniil
19.11.2016
12:09:50
Наследуй от abstractuser
Разве User не наследуется от abstractuser, то есть я получу все методы, что и в abstractuser, в кастомизированной модели?
Все, заметил)
Фейл

Artem
19.11.2016
12:13:22

Daniil
19.11.2016
12:14:39
Это зачем? Я хочу просто наследоваться от User.
Напишу class CustomUser(User):
email = models.EmailField('email address', blank=True, unique=True)
И, вроде, еще можно переопределить менеджер
objects = UserManager()

Artem
19.11.2016
12:16:34
А, ты вон для каких целей

Daniil
19.11.2016
12:17:06
Ну, меня не устаривает, что мыло неуникальное
Советуют сделать кастомизированную модельку
Заодно добавлю менеджер, чтобы забыть про User

Google

Daniil
19.11.2016
12:19:15
Мне не разрешают переопределить email
Local field 'email' in class 'CustomUser' clashes with field of the same name from base class 'User'.
Делать второе поле с другим именем или есть решение?

Slava
19.11.2016
12:24:14
народ, кто что использует all_auth или django-social-login?

Alexander
19.11.2016
12:27:13
1 удалил ящик, другой потом его зарегистрировал
такое может быть, если свой домен
и, кстати, у 1 пользователя может быть вообще куча ящиков, просто 1 из них основной (и он сам может не помнить, какой именно)
почта или телефон как логин - не лучшая идея

Daniil
19.11.2016
12:30:42
Это для регистрации
Чтобы заполнить данные о пользователе, а логине я еще не беспокоюсь
В чем проблема может быть?

Aleksey
19.11.2016
13:02:33
В базе нету поля username у этой таблицы.

Daniil
19.11.2016
13:03:24
У abstractuser есть это поле, я от него наследовался

Nikita
19.11.2016
13:03:46
А ты в settings указал какую модель использовать для авторизации?

Aleksey
19.11.2016
13:04:02
В CustomUser не указана таблица.

Daniil
19.11.2016
13:04:19
AUTH_USER_MODEL = 'client.CustomUser'

Nikita
19.11.2016
13:04:45
Ну вот с этого и начинаются проблемы)

Daniil
19.11.2016
13:05:02

Google

Nikita
19.11.2016
13:05:11
AbstractUser - абстрактный класс

Daniil
19.11.2016
13:05:13

Nikita
19.11.2016
13:07:17
Зайди в класс джанговского User
Там есть метакласс

Daniil
19.11.2016
13:07:55

Nikita
19.11.2016
13:08:49
Я пытался разобраться но бросил
Попробуй скопировать в свой класс
Я недавно тоже искал как переопределить поведение User
В итоге наследовался от AbstractBaseUser

arisu
19.11.2016
13:11:55
Разве так не написано в документации?
Что от него и надо

Daniil
19.11.2016
13:12:59
Где? Дайте линк
Ок, а если мне нужны поля, которые в AbstractUser, то мне двойное наследование нужно сделать?
В итоге наследовался от AbstractBaseUser
Разве так не написано в документации?
AbstractBaseUser для полного переопределения модели, а AbstractUser для добавления полей и методов, что там

Nikita
19.11.2016
13:25:38
Да, мне не нужны были поля
Просто при наследовании моделей
Неявно создается связь один к одному

Google

Nikita
19.11.2016
13:26:56
И по идее username у твоей модели должен браться из abstractuser
Но эта модель абстрактная
Ты посмотрел джанговского юзера?

Eldar
19.11.2016
13:28:13

Aleksey
19.11.2016
13:28:45
@python_beginners сюда пиши.

Nikita
19.11.2016
13:28:59
Ок)

9Lifesme
19.11.2016
13:51:07
Трям)
Ребята не подскажите, как textaria прикрутить? :(

Daniil
19.11.2016
13:53:56
У тебя есть форма, у формы есть поля, у полей есть атрибуты и свойства, названия атрибутов найдешь и свойств найдешь в документации

9Lifesme
19.11.2016
13:58:56
Спасибо за подсказку)), изучаю инфу)

Daniil
19.11.2016
14:01:14
Не за что?

Alexander
19.11.2016
17:53:23
а как в Django правильнее всего реализовывать ограничения на уровне СУБД (constraints)? например, я хочу добавить CHECK(fk1 IS NULL != fk2 IS NULL)

9Lifesme
19.11.2016
17:54:58
фуууууууууух)

Alexander
19.11.2016
17:55:53
допустим, у меня есть 2 FK и должен быть заполнен только 1 из них, если ни 1 или оба - это ошибка
например, у нас есть модель Account, которая связана с User и Organization, и может быть связана только с кем-то одним из них
я могу это контроллировать в save(), но хочу сделать на уровне СУБД

Eldar
19.11.2016
18:11:17
но сейчас стараются это в бизнес логику перенести, а не в бд писать

Alexander
19.11.2016
18:12:43
а зачем триггер?
CHECK работает отлично тут

Google

Alexander
19.11.2016
18:13:19

Alex
19.11.2016
18:13:40
хм, кто то тут сравнивал Jinja2 с Django темплейтами?
http://blog.sendwithus.com/python-templating-performance-showdown-django-vs-jinja/

Alexander
19.11.2016
18:13:41
Django просто управляет базой
а зачем триггер?
http://stackoverflow.com/questions/18409952/trigger-vs-check-constraint
просто раз уж у меня schema разруливает Django, то и CHECK'и тоже в Django нужно как-то описывать)

Alex
19.11.2016
18:15:40
а, так вот, действительно лучше перейти на Jinja2?
синтаксис темплейтов у них одинаковый...
юзал и то и то. (Jinja2 не в Django проекте был у меня.)

parikLS
19.11.2016
18:15:42
триггеры зло
адское

Alexander
19.11.2016
18:15:45
> хм, кто то тут сравнивал Jinja2 с Django темплейтами?
Jinja2 круче)

Eldar
19.11.2016
18:15:46

Alexander
19.11.2016
18:16:21
вопрос не в том, как это сделать на стороне СУБД (я знаю), а в том, как это Django лучше всего объяснить
думал, может есть app, который позволяет описывать эти CHECK'и в Meta модели

vadim
19.11.2016
18:34:51
просто интересно для какой задачи это надо (я имею виду реальную задачу, а не 2 FK и давайте их запустим в космос)

Alexander
19.11.2016
18:48:27
счёт, который относится одновременно и к юзеру и к компании - это аномалия

Daniil
19.11.2016
19:52:54
Кто как делает авторизацию, давая выбор заполнения либо юзернейма, либо почты?