
V
26.10.2016
18:43:22

Igor
26.10.2016
18:43:34
нативной, не Telegram Desktop?
у меня мало того что бектики проебываются, так еще и эти сообщения отредактировать потом нельзя в принципе, блядь

Liyoto
26.10.2016
18:43:54

Google

Igor
26.10.2016
18:44:11
Буду думать
чего тут думать, яснее выражаться надо, не pass, а pass1 :)

F
26.10.2016
18:44:18

Igor
26.10.2016
18:44:21
pass - это ключевое слово в питоне, которое ничего не делает

Zart
26.10.2016
18:44:27
мне просто интересно как он смог использовать зарезервированное слово языка под имя переменной

Igor
26.10.2016
18:44:29
и его нельзя перезаписать

Liyoto
26.10.2016
18:44:52

Igor
26.10.2016
18:44:56
чего ты злой такой :)

Zart
26.10.2016
18:46:28
я не злой, я охуевший

Igor
26.10.2016
18:46:42
s/вш/нн/

Liyoto
26.10.2016
18:46:57
?
`passwords = ('11' , 'qqq' , 'qwerty')
login = input('\nВведите логин: ')
pass1 = input('\nВведите пароль: ')
while pass1 not in passwords:
print('\nНеврный пароль для учетной записи')
pass1 = input('Повторите пароль: ')
else:
print('\nHello world')`
так правильно ?

Google

Liyoto
26.10.2016
18:48:10
в этот раз все нормально получилось , но просто чето саомнительно мне когда переменная в while опять появляется

Igor
26.10.2016
18:48:10

F
26.10.2016
18:48:14
ненене

Igor
26.10.2016
18:48:18
а чего тут сомнительного?

F
26.10.2016
18:48:27
бесконечный цикл?

Igor
26.10.2016
18:48:35
почему бесконечный?

F
26.10.2016
18:48:51
not in passwords, при этом в passwords значения не добавляются введенные

Igor
26.10.2016
18:48:56
pass1 = input('Повторите пароль: ')
когда юзер введет, например, "11", условие "pass1 not in passwords" нарушится
ну да, а зачем?

F
26.10.2016
18:49:03
а это я вглаза ебусь

Igor
26.10.2016
18:49:03
мы проверяем наличие элемента в кортеже
:)

F
26.10.2016
18:49:07
они заполнены уже

Liyoto
26.10.2016
18:49:15
бесконечный цикл?
при неправильном пароле опять повторяет цикл до тех пор пока правильно не напишу

F
26.10.2016
18:49:23
Reverse accessor for 'Dialog.first_user' clashes with reverse accessor for 'Dialog.second_user'.
HINT: Add or change a related_name argument to the definition for 'Dialog.first_user' or 'Dialog.second_user'.
такс такс такс
А как будет этот реверс аксессор выглядеть, с которым оно конфликтует?
(джанга)

Igor
26.10.2016
18:50:05
но я не уверен

Google

Zart
26.10.2016
18:50:26
не прокатит
ну в смысле если тебе пароль потом нужен

Igor
26.10.2016
18:50:44
прокатило :)

F
26.10.2016
18:50:45

Igor
26.10.2016
18:50:51
но я думаю на уровне, когда человек использует input() для ввода пароля, это не так страшно!

F
26.10.2016
18:51:26
главное, что старается

Liyoto
26.10.2016
18:51:37
Всем спасибо!)

Igor
26.10.2016
18:52:01
можно еще круто зашифровать в md5!
и потом расшифровывать!

Zart
26.10.2016
18:52:14
ват

Igor
26.10.2016
18:52:20
:( я пошутить хотел

Igor
26.10.2016
18:52:29
захешировать, захешировать
и не md5, а bcrypt'ом с солью и перцем

F
26.10.2016
18:56:30
так чет я туплю
жоска

Igor
26.10.2016
18:56:40
чо там

F
26.10.2016
18:56:42
class Dialog(models.Model):
first_user = models.ForeignKey('User',db_index=True)
second_user = models.ForeignKey('User', db_index=True)
last_message = models.DateTimeField(null=True, blank=True, db_index=True)
они же форейн ключами должны быть?
не 1к1 поле?

Liyoto
26.10.2016
18:57:03

Google

Igor
26.10.2016
18:57:05
не, зачем one-to-one

Louis
26.10.2016
18:57:06

Igor
26.10.2016
18:57:07
да, фк

Zart
26.10.2016
18:57:18
всё хорошо, главное чтобы этим кодом потом реальный пароли не вводили 8)

Igor
26.10.2016
18:57:29
а ваще стоп
input() всегда вернет строку

Admin
ERROR: S client not available

F
26.10.2016
18:58:16
а, спс, тогда ща разберусь че он с релейтед нейм от меня хочет и начну апихи писать

Igor
26.10.2016
18:58:24
это тебе надо в массиве с перечислением паролей писать строки тоже, а не числа

Louis
26.10.2016
19:00:19
да, теперь все гут

Igor
26.10.2016
19:00:54
смотри, если ты в модели Dialog, то
first_user = ForeignKey(User, related_name='first_dialog')
second_user = ForeignKey(User, related_name='second_dialog')
чтобы если тебе понадобилось бы взять igor = User.objects.get(username='iamigor'), ты мог сделать так:
igor.first_dialog # вернется Dialog.objects.get(first_user=igor)
igor.second_dialog # вернется Dialog.objects.get(second_user=igor)
я как-то хуево щас объяснил, но я туплю уже, ниче лучше в голову не приходит в качестве примера
блин, это ж ФК, он же many-to-one, там много объектов может быть доступно
поэтому правильнее related_name="dialogs" ))
но это хуйня какая-то тоже
блин, может правда лучше one-to-one
че-т я ступил

F
26.10.2016
19:03:02
тогда вроде прокатит твой пример

Google

F
26.10.2016
19:03:15
по идее раз уж там два 1к1 поля, то как раз норм должно быть
чтоб много диалогов было у всех)

Igor
26.10.2016
19:03:51
так много диалогов не будет, разве нет?
one-to-one так и называется, что один объект может быть связан с другим только один раз
это как ForeignKey, только с проверкой на уникальность, грубо говоря

F
26.10.2016
19:04:13
ну да, но один юзер должен же с любым другим переписываться

Igor
26.10.2016
19:04:31
захочешь создать новый диалог - джанга пошлет тебя нахуй (точнее, БД пошлет тебя нахуй, а там уж джанга передаст все словечки)

F
26.10.2016
19:05:10
если 1к1 сделаю, то смогу тогда так проверять наличие диалога: if not igot.first_dialog and not igor.second_dialog %создать диалог%
почему пошлет?

Igor
26.10.2016
19:05:18

Liyoto
26.10.2016
19:05:47

F
26.10.2016
19:07:32
вынужденно
чувствую себя тем доктором, который Франкенштейна собрал

Igor
26.10.2016
19:07:46
почему пошлет?
ну, если в таблице есть
first_user, second_user
user1, user2
user2, user3
а потом ты попытаешься добавить, скажем,
user1, user4
то джанго/бд увидит, что у тебя повторяется user1 в столбце first_user и начнет агриться

F
26.10.2016
19:08:09
но по идее такогоне произойдет, если я буду проверять наличие диалогов как выше сказал

Igor
26.10.2016
19:08:31
поэтому да, поэтому foreignkey все же

F
26.10.2016
19:08:58
и создаваться диалог будет один раз, при этом я жестко задам from_user тем, кто начал первый писать (пусть ему достанется первое поле в модели)

Igor
26.10.2016
19:08:59
произойдет
смари почему
есть диалог user1 и user2
есть диалог user3 и user4
ты хочешь создать диалог user1 и user4
что тебе?
хуй тебе!
ну, ты, конечно, сможешь первернуть их местами
Эта группа больше не существует