
Pavel
14.02.2016
14:19:30
за год-два, если время терять не будешь, будешь джанго владеть очень сносно

Whore Amazing
14.02.2016
14:19:48
будем надеяться

Pavel
14.02.2016
14:20:36
все будеть збс

Denis 災 nobody
14.02.2016
14:33:07

Google

Denis 災 nobody
14.02.2016
14:33:22
И всё ломается

Whore Amazing
14.02.2016
14:45:45
так нечееееестно
в гайдах все подробно расписали по входу и выходу
и забили нахер на регистрацию

Ilya
14.02.2016
14:50:58

Whore Amazing
14.02.2016
14:51:11
ААААА
я опять нихера не понимаю
так
чего-то сломал
совсем не там, где писал
откуда он несуществующее поле-то взял?
кажется, он сам сгенерил себе запрос какой-то левой колонки в sql и теперь жалуется на ее отсутствие
ну не пидр ли?

Pavel
14.02.2016
16:00:17
опечатка возможно.
то, что джанга сама себе придумывает, она корректно создаёт (по возможности).

Whore Amazing
14.02.2016
16:00:58
да нет, он вполне определенно хочет колонку author_id
которую, как я понял, сгенерировал на основе поля author
правда, я так и не понял, почему он не смог ее создать сам

Google

Pavel
14.02.2016
16:04:23
python manage.py makemigrations && python manage.py migrate

Whore Amazing
14.02.2016
16:05:31
хм. когда я раньше добавлял поля в уже готовые модели, не надо было миграции делать, вроде.

Pavel
14.02.2016
16:06:22
всегда надо делать миграцию, когда ты меняешь модель.

Whore Amazing
14.02.2016
16:06:49
богом клянусь, пару раз не надо было.
ладно, хрен с ним. тут другая засада.
не может быть у foreignkey blank'а, говорит.
C:\Users\user\Documents\django\test1>manage.py makemigrations
You are trying to add a non-nullable field 'author' to question without a defau
t; we can't do that (the database needs something to populate existing rows).
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows)
2) Quit, and let me add a default in models.py
Select an option:
почему он, кхм, стал вдруг non-nullable?

Pavel
14.02.2016
16:20:10
покажи строчку про author из models.py

Whore Amazing
14.02.2016
16:20:39
author = models.ForeignKey(User, blank=True)
User, разумеется, импортировал

Pavel
14.02.2016
16:21:52
blank относитсяя к модели, а null=True - к записи в бд. тут какая-то очень тонкая грань, но я их всегда веду парой: blank=True, null=True. И я об этом уже писал два часа назад.

Whore Amazing
14.02.2016
16:22:26
а, я думал, что либо-либо. потому что в m2m было просто blank, без null

Solyar
14.02.2016
17:14:42
Всем привет ребят. Что посоветуете почитать по пайтону чтобы вникнуть в язык. До этого долгое время ковырял Lua и C#. Буду благодарен если подкините парочку сурсов чтобы вникнуть в процесс. Можно и вообще для чайников литру ибо люблю начинать с нуля.

Older
14.02.2016
17:19:58
https://www.ibm.com/developerworks/ru/library/l-python_part_1/

Solyar
14.02.2016
17:20:39
Спасибо

Sergey
14.02.2016
19:08:41
Всем привет! Не подскажите как тут подставить базу при создании экземпляра:
class BaseModel(Model):
class Meta:
database = database

Pavel
14.02.2016
19:30:08
что-то типа MyModel.using('database_name').create(...)?

Sergey
14.02.2016
19:45:51

Pavel
14.02.2016
20:00:38
через DatabaseRouterы?

Google

Sergey
14.02.2016
20:05:57

Pavel
14.02.2016
20:06:46
механизм, позволяющий динамически выбирать базу данных для моделей.
там вроде можно чуть не для каждого запроса менять базу. Но это смотреть надо, сам не пользуюсь.

Sergey
14.02.2016
20:08:33
Спасибо, изучу! Пока что решил проблему просто инициализировав базу там, где определяются модели.

Whore Amazing
14.02.2016
20:13:32
не особо понятно, зачем такое может быть нужно, но на всякий случай запомню.

Pavel
14.02.2016
20:18:31

Whore Amazing
14.02.2016
20:18:54
но...зачем?

Pavel
14.02.2016
20:19:13
распределение нагрузки, когда один сервер не справляется.
В общем случае количество операций записи гораздо меньше, чем операций чтения. поэтому писать можно в одно, но читать из нескольких мест.

finkel
14.02.2016
20:27:25
а еще можно мастер - мастер, на этой наши админы обещали запилить
на этой неделе*

Solyar
14.02.2016
20:49:34
Ребят знаю что глупый вопроз но как реализовать такую вещь
У нас есть файл в который с помощью комманды можно записать какие либо данные в нашем случае цифры
Допустим у нас в файле есть цифры
1232313
1412515
2151251
И нам нужно вытащить определенную строчку как это реализовать?

Pavel
14.02.2016
20:51:04
Вопрос в том, как прочитать пятую строку из файла?

Aragaer
14.02.2016
20:51:16
sed -n 5p
а, питон

[Anonymous]
14.02.2016
20:51:39
мне кажется клево будет какой нибудь yield присобачить тут

Solyar
14.02.2016
20:51:39
Не обязательно пятую. 10 , 120 или же 250. Строку указывать нужна вручную
нужно*

[Anonymous]
14.02.2016
20:51:53
а, тогда не надо йилд

Aragaer
14.02.2016
20:52:04
with open("path/to/file") as in_file:
result = in_file[4]

Google

Aragaer
14.02.2016
20:52:09
может даже и прокатит
если так не покатит, то в цикле до нужного перемотать. Там генератор

Pavel
14.02.2016
20:52:46
или в
os.system("head -n250 file.txt | tail -1")

Solyar
14.02.2016
20:53:06
Если можно пережевать то поясните пожалуйста. Застрял на обработке файлов и строк и все тут.

Aragaer
14.02.2016
20:53:14
блин, хед, тейл - я вон на седе написал в 3 байта

Solyar
14.02.2016
20:54:01

Pavel
14.02.2016
20:54:41
а можно пояснить за строку?
это неправильная строка, выше была лучше. а так - берём первые 250 строк, а потом берём одну последнюю от них.

Admin
ERROR: S client not available

Solyar
14.02.2016
20:55:17
А если мне нужна определенная? Скажем у меня 250 строк а нужна 142 или 100. Как тогда поступить?

[Anonymous]
14.02.2016
20:55:31
readline()
не?
блин ща

Aragaer
14.02.2016
20:56:59
ну там в тексте задаешь нужный номер

Kolyann
14.02.2016
20:57:12
with open('file.txt') as f:
return f.readlines()[num]

Aragaer
14.02.2016
20:57:50
кстати между хед+тэйл и сед есть разница. Если строк меньше 250, то хед-тейл вернет последнюю, а сед ничего

Solyar
14.02.2016
20:58:46
-_-

Pavel
14.02.2016
20:59:11
import itertools
fd = open(filename, 'r')
z=itertools.dropwhile(lambda e: e[0]!=5, enumerate(fd))
line = next(i)[1]
print(line)
счёт строк с нуля.

Aragaer
14.02.2016
20:59:34
а закрывать кто будет?

Google

Pavel
14.02.2016
20:59:46
os

Aragaer
14.02.2016
21:00:02
лучше всего через with open as

Pavel
14.02.2016
21:00:16
может мне ещё тут try\except выписать и логирование ошибок?
надо понимать, что код пишется в окошке телеграмма.

Aragaer
14.02.2016
21:00:46
нет, with open as будет достаточно. Трай-эксепты улетают наружу и там адекватно обрабатываются
если написал open, то до with open as один шаг

Solyar
14.02.2016
21:01:40
В чем проблема?

Kolyann
14.02.2016
21:01:52
оно не в функции

Aragaer
14.02.2016
21:01:53
в том, что ретурн не в функции?

Pavel
14.02.2016
21:02:01
если вводить with, то придётся пробелы вставлять в куждую строку, а ттут и так окно не широкое

Solyar
14.02.2016
21:02:08
-_-
туплю
секунду

Aragaer
14.02.2016
21:02:15
тут беда в том, что если в файле 100500 строк, оно ж все прочитает
с энумерейтом и дропвайл в этом смысле правильнее

Kolyann
14.02.2016
21:03:07
в том файле вряд ли будет больше пары тысяч строк

Pavel
14.02.2016
21:03:36
у меня там в четвёртой строке косяк, dropwhile в одну переменую сохраняется, а next у другой дёргается, и что? принцип же понятен, надеюсь?

Solyar
14.02.2016
21:04:48
При таком виде все работает