Size: a a a

Django [ru] #STAY HOME

2020 December 31

DT

Dan Tyan in Django [ru] #STAY HOME
возможно в админке с помощью css изменяется
источник

S

Sergey in Django [ru] #STAY HOME
St4s
ну во первых я подумал что ничего страшного если я буду сравнивать gmailcom с gmailcom . вчера сцикнул на этот счет и подумал что сплитить чтото нужно будет.

а второе, на сколько мне известно вводить дополнительное поле  в таблицу должно быть крайней мерой.

конкретный пример. в бд есть exam.ple@gmail.com  и при проверке со значений в бд будут убраны все точки , с юзер инпута тоже, меня это устраивает: example@gmailcom == example@gmailcom -> ValidationError
а покажи, плз, сырой скл и если не сложно эксплейн
источник

S

St4s in Django [ru] #STAY HOME
Sergey
а покажи, плз, сырой скл и если не сложно эксплейн
SELECT "users_user"."id", "users_user"."password", "users_user"."last_login", "users_user"."is_superuser", "users_user"."first_name", "users_user"."last_name", "users_user"."is_staff", "users_user"."date_joined", "users_user"."username", "users_user"."email", "users_user"."is_active", "users_user"."last_visit", REPLACE("users_user"."email", ., ) AS "cleaned_email" FROM "users_user" WHERE REPLACE("users_user"."email", ., ) = sghsgh@gmailcom
источник

S

St4s in Django [ru] #STAY HOME
explain как делать ?
источник

S

Sergey in Django [ru] #STAY HOME
у меня есть подозрение, что функции реплейса прийдется изменять весь индекс, а потом уже сравнивать
источник

S

St4s in Django [ru] #STAY HOME
тоесть в большой бд оооочень долгие запросы?
источник

S

Sergey in Django [ru] #STAY HOME
St4s
тоесть в большой бд оооочень долгие запросы?
вот эту гипотезу как раз и стоило бы проверить
источник

S

St4s in Django [ru] #STAY HOME
мне с сырого запроса интересно вдруг стало почему он не пишет вместо
 WHERE REPLACE("users_user"."email", ., ) = sghsgh@gmailcom
->
 WHERE "cleaned_email" = sghsgh@gmailcom
источник

S

Sergey in Django [ru] #STAY HOME
https://stackoverflow.com/a/18053426
Ну, да, это то о чём я и подозревал
источник

S

Sergey in Django [ru] #STAY HOME
Эффективнее - мой вариант
источник

S

St4s in Django [ru] #STAY HOME
там же есть
REPLACE("users_user"."email", ., ) AS "cleaned_email"
источник

S

St4s in Django [ru] #STAY HOME
эх
источник

S

Sergey in Django [ru] #STAY HOME
Спасибо, теперь у меня появился ещё один вопрос для собеседований :3
источник

S

St4s in Django [ru] #STAY HOME
не издевайся над людьми)
источник

S

St4s in Django [ru] #STAY HOME
получается так со всеми функциями? с UPPER() например (он же в джанго ignorecase) ведь не по настоящему значению поиск  будет, это то что я делаю для фикса case sensitive username'ов
источник

S

St4s in Django [ru] #STAY HOME
в таком случае решение инстаграма еще приемлемое: все к чертям в ловеркейс при добавлии в бд
источник

A

Alex in Django [ru] #STAY HOME
Коллеги, про тестирование. Если метод лезет в базу за входными данными, нужно ли использовать фикстуры и mixer?
источник

S

Sergey in Django [ru] #STAY HOME
Alex
Коллеги, про тестирование. Если метод лезет в базу за входными данными, нужно ли использовать фикстуры и mixer?
желательно иметь фикстуры, хорошо бы их использовать и запускать на изолированной базе, но бывают тесты, которые гоняются уже на существующей базе

а что такое миксер?
источник

S

St4s in Django [ru] #STAY HOME
Sergey
а покажи, плз, сырой скл и если не сложно эксплейн
Seq Scan on public.users_user  (cost=0.00..1.02 rows=1 width=482) (actual time=0.014..0.014 rows=0 loops=1)
 Output: id, password, last_login, is_superuser, first_name, last_name, is_staff, date_joined, username, email, is_active, last_visit, replace((email)::text, '.'::text, ''::text)
 Filter: (replace((users_user.email)::text, '.'::text, ''::text) = 'example@gmailcom'::text)
 Rows Removed by Filter: 8
Planning Time: 0.106 ms
Execution Time: 0.035 ms
источник

S

St4s in Django [ru] #STAY HOME
explain же пишет если с индексами что-то связано?
источник