
Erzh
12.10.2017
09:34:11

Dan
12.10.2017
09:35:32
это же VPS-ки
Shared
1GB
$10/mo
1GB RAM
Shared multi-core CPU
100GB SSD storage
1TB bandwidth
Fully managed server
Shared server

Erzh
12.10.2017
09:36:20
ааа. невнимательность)

Artem
12.10.2017
09:44:43

Google

Dan
12.10.2017
09:57:42

Artem
12.10.2017
10:02:52
Своём прям своём

Grigore
12.10.2017
10:14:39
Добрый день! Никто не сталкивался с проблемой, что в админке при сохранении данных не проходит POST запрос, а происходит бесконечное выполнение js скрипта ? Админку не менял, баг наблюдаю на конкретной модели.

b0g3r
12.10.2017
10:15:17
@amureki


Grigore
12.10.2017
10:15:46
```
```class Product(CreationModificationDateMixin, MetaTagsMixin, ImageThumbnailMixin):
category = TreeForeignKey(
Category,
verbose_name='Категория'
)
name = models.CharField(
'Имя',
max_length=150,
db_index=True
)
slug = models.SlugField(
'Название в URL',
max_length=200
)
articul = models.CharField(
'Артикул',
max_length=6,
unique=True
)
price = models.PositiveIntegerField(
'Цена'
)
stock = models.PositiveIntegerField(
'На складе',
default=0
)
discount = models.PositiveIntegerField(
'Скидка',
default=0,
help_text='Скидка указывается в процентах'
)
in_discount = models.BooleanField(
'Учавствует в распродаже ?',
default=False
)
brand = models.ForeignKey(
Brand,
null=True,
blank=True,
related_name='products',
verbose_name='Производитель'
)
__original_name = None
# Managers
objects = models.Manager()
with_image = WithImageManager()
def __init__(self, *args, **kwargs):
super(Product, self).__init__(*args, **kwargs)
self.__original_name = self.name
def get_absolute_url(self):
return reverse('products:detail', kwargs={'slug': self.slug, 'id': self.id})
def get_price(self):
return self.price - int(self.price * (self.discount / 100))
def save(self, *args, **kwargs):
sync = None
if kwargs.get('sync'):
sync = kwargs.pop('sync')
if not sync:
for fc in FilterCategory.objects.filter(categories=self.category):
pf = ProductFilter.objects.filter(filter_category=fc, product=self)
if not pf:
pf = ProductFilter(filter_category=fc, product=self)
pf.save()
# Overwrite Slug If Changed Name
if self.__original_name != self.name:
self.slug = slugify(unidecode(self.name))
super(Product, self).save(*args, **kwargs)
self.__original_name = self.name
def __str__(self):
return self.name
class Meta:
verbose_name = 'Товар'
verbose_name_plural = 'Товары'
ordering = ['price', '-id']


Artem
12.10.2017
10:17:47
```class Product(CreationModificationDateMixin, MetaTagsMixin, ImageThumbnailMixin):
category = TreeForeignKey(
Category,
verbose_name='Категория'
)
name = models.CharField(
'Имя',
max_length=150,
db_index=True
)
slug = models.SlugField(
'Название в URL',
max_length=200
)
articul = models.CharField(
'Артикул',
max_length=6,
unique=True
)
price = models.PositiveIntegerField(
'Цена'
)
stock = models.PositiveIntegerField(
'На складе',
default=0
)
discount = models.PositiveIntegerField(
'Скидка',
default=0,
help_text='Скидка указывается в процентах'
)
in_discount = models.BooleanField(
'Учавствует в распродаже ?',
default=False
)
brand = models.ForeignKey(
Brand,
null=True,
blank=True,
related_name='products',
verbose_name='Производитель'
)
__original_name = None
# Managers
objects = models.Manager()
with_image = WithImageManager()
def __init__(self, *args, **kwargs):
super(Product, self).__init__(*args, **kwargs)
self.__original_name = self.name
def get_absolute_url(self):
return reverse('products:detail', kwargs={'slug': self.slug, 'id': self.id})
def get_price(self):
return self.price - int(self.price * (self.discount / 100))
def save(self, *args, **kwargs):
sync = None
if kwargs.get('sync'):
sync = kwargs.pop('sync')
if not sync:
for fc in FilterCategory.objects.filter(categories=self.category):
pf = ProductFilter.objects.filter(filter_category=fc, product=self)
if not pf:
pf = ProductFilter(filter_category=fc, product=self)
pf.save()
# Overwrite Slug If Changed Name
if self.__original_name != self.name:
self.slug = slugify(unidecode(self.name))
super(Product, self).save(*args, **kwargs)
self.__original_name = self.name
def __str__(self):
return self.name
class Meta:
verbose_name = 'Товар'
verbose_name_plural = 'Товары'
ordering = ['price', '-id']
Ииии?


Grigore
12.10.2017
10:18:08
ну может чет там не так с моделью

Artem
12.10.2017
10:18:33
Моделька как моделька
Бабло правда лучше в DecimalField писать

Grigore
12.10.2017
10:19:16
Ииии?
Суть такая, хочу просто добавить данные посредством стандартной админки, но при добавлении не проиходит Post запроса, что-то с данными на клиенте
Decimal не юзаю, так как заранее знаю, что там не будет копеек

Artem
12.10.2017
10:20:20
Ты в save зарезаешь все сохранение

Google

Archer
12.10.2017
10:21:03
Drug Mag... хм...

b0g3r
12.10.2017
10:21:34
@banofbot

banofbot
12.10.2017
10:21:35
? Kendrick Lamar кикнут — вернуть этого пользователя можно только разбаном в настройках чата.
Проголосовавшие за кик:
@b0g3r, @kdelinx, @Dogrtt, @ArcherGodson, @ssnorov

Artem
12.10.2017
10:22:40
О_о

Archer
12.10.2017
10:22:41
сломалось?

Artem
12.10.2017
10:23:13
@banofbot

banofbot
12.10.2017
10:23:13
? Kendrick Lamar кикнут — вернуть этого пользователя можно только разбаном в настройках чата.
Проголосовавшие за кик:
@kdelinx, @heyyyoyy, @mvd_mayor, @ArcherGodson, @VERITAS2017

Sergey
12.10.2017
10:23:35
где вариант банить

b0g3r
12.10.2017
10:25:29

Sergey
12.10.2017
10:26:02
он после кика 1 сообщение оставил

Sergey
12.10.2017
10:26:07
кик и есть бан
аа
просто с первого раза не сработало вот я подумал просто выкидывает из чата

amureki
12.10.2017
10:27:09
Бот не идеален, к сожалению
Хотелось бы банить и чистить сообщения, не только выносить из группы

Grigore
12.10.2017
10:27:51

BekzoD
12.10.2017
10:50:25
здравствуйте, откуда можно импортировать csrf ?

Dan
12.10.2017
10:51:58
свой надо иметь

BekzoD
12.10.2017
10:52:09
??
how?

Philipp
12.10.2017
10:52:28
https://djbook.ru/rel1.9/ref/csrf.html

Dan
12.10.2017
10:52:31
что значит импортировать csrf?

Serj
12.10.2017
10:53:04

Google

N.B.71th
12.10.2017
10:53:26
Это было красиво XD
За свой csrf поясни

BekzoD
12.10.2017
10:53:56
но но не в жс. просто {%csrf_token%} не видит
джанго

Serj
12.10.2017
10:54:09
кто не видит?
где не видит?

BekzoD
12.10.2017
10:54:22

Dan
12.10.2017
10:54:26
django.middleware.csrf.CsrfViewMiddleware

BekzoD
12.10.2017
10:54:28
внутри формы

Serj
12.10.2017
10:54:41

Dan
12.10.2017
10:54:43
в settings в middleware указан ?

BekzoD
12.10.2017
10:54:47

Philipp
12.10.2017
10:55:33
Кстати, вопрос, сейчас смотрю Web-технологии, на канале Технострим Mail.ru. Сильно ли поменялся подход к проектированию приложений во второй версии Django?

b0g3r
12.10.2017
10:55:50
так вторая ещё не вышла)

Dan
12.10.2017
10:56:03
оттуда импортировать?
должен быть в middleware перечисден
Промежуточный слой CSRF активирован по умолчанию и находится в настройке MIDDLEWARE_CLASSES. Если вы переопределяете эту настройку, помните, что 'django.middleware.csrf.CsrfViewMiddleware' должен следовать перед промежуточными слоями, которые предполагают, что запрос уже проверен на CSRF атаку.
можно потыкать альфу

Philipp
12.10.2017
10:56:55
хмм, думаю к тому моменту, как разберусь с angular и react, как раз подоспеет релиз
Вот еще, как начинающий... Зачем использовать ORM, если все можно спокойно выбрать прямым SQL запросом, без всякой магии? Или использовать ORM - маст хэв?

Dan
12.10.2017
11:03:35
ORM дает немало плюсов
но платишь за это снижением скорости

Google

Philipp
12.10.2017
11:11:26
В начале года, когда начал изучать PyQt5, написал программу для предприятия (присвоение иучет децимальных номеров), все хранилось в SQLite (маленькая, полу-университетская фирма), проше специально курсы на codecademy по SQL, почитал литературу, потом, когда летом сел за Django, искренне не понял, зачем вообще нужен ORM (хотя понимаю, что это из-за того, что не сталкивался с реальными проектами, еслиб не нужно было, егоб и не придумали, ведь так?!)
что-то клавиатура заедает ...


xPushkin
12.10.2017
11:37:38
В начале года, когда начал изучать PyQt5, написал программу для предприятия (присвоение иучет децимальных номеров), все хранилось в SQLite (маленькая, полу-университетская фирма), проше специально курсы на codecademy по SQL, почитал литературу, потом, когда летом сел за Django, искренне не понял, зачем вообще нужен ORM (хотя понимаю, что это из-за того, что не сталкивался с реальными проектами, еслиб не нужно было, егоб и не придумали, ведь так?!)
С ORM ты как раз таки столкнешься в маленьких проектах. Реальные (большие) проекты пишут raw SQL - быстрее и проще оптимизировать.


b0g3r
12.10.2017
11:39:18
В начале года, когда начал изучать PyQt5, написал программу для предприятия (присвоение иучет децимальных номеров), все хранилось в SQLite (маленькая, полу-университетская фирма), проше специально курсы на codecademy по SQL, почитал литературу, потом, когда летом сел за Django, искренне не понял, зачем вообще нужен ORM (хотя понимаю, что это из-за того, что не сталкивался с реальными проектами, еслиб не нужно было, егоб и не придумали, ведь так?!)
с орм удобно, с орм быстро разрабатываешь
Реальные (большие) проекты - пишут критические по скорости / сильно сложные запросы на чистом SQL
ORM даёт тебе удобную обертку над твоими таблицами/документами в базе данных - ты работаешь не с сырыми данными, а уже с объектами.
На средних проектах всё равно придется писать своё подобие орм - запросы повторяются, запросы неуникальны по своей структуре, raw-данные - неудобны. Сразу и в класс хочется обернуть, и пару методов добавить. А там уже и пул коннектов к базе данных писать придется :)


xPushkin
12.10.2017
11:42:47

b0g3r
12.10.2017
11:43:08

xPushkin
12.10.2017
11:43:44
Напомнило

b0g3r
12.10.2017
11:44:23
Вот, простенькая ORM на пять к строк и сколько-то там тыщщ коммитов:
https://github.com/coleifer/peewee/blob/master/peewee.py

xPushkin
12.10.2017
11:44:34
Прям таки не проблема?
Когда ты знаешь что тебе нужно, да не проблема. Сам оптимизируешь все запросы без лишнего оверхеда полноценной ORM

b0g3r
12.10.2017
11:45:09
А, так не своя орм, а своя недо-орм :)

xPushkin
12.10.2017
11:46:20

b0g3r
12.10.2017
11:46:44
Под термин идеально ложится, кто ж спорит
Так-то и джанго, и фласк - веб-фреймворки

xPushkin
12.10.2017
11:47:01
Так что не существует недо-ORM

Oleksandr
12.10.2017
11:47:01
между raw sql и ORM есть еще конструкторы запросов. типа как в sqlalchemy. так что не обязательно выбирать из 2

xPushkin
12.10.2017
11:47:17

b0g3r
12.10.2017
11:47:27

Google

Oleksandr
12.10.2017
11:47:32
проблема raw sql не в знании sql, а в неудобстве их динамически компоновать

xPushkin
12.10.2017
11:48:36
А полноценные ORM существуют?
Ошибочно говорить про ORM как полноценная. Можно либо её сделать, либо не сделать. Что это значит? Если у меня сущность замапена на базу, то у меня есть ORM.

b0g3r
12.10.2017
11:48:49
Когда ты знаешь что тебе нужно, да не проблема. Сам оптимизируешь все запросы без лишнего оверхеда полноценной ORM
так у нас бывают полноценные орм или нет?)

xPushkin
12.10.2017
11:49:25

b0g3r
12.10.2017
11:49:40

xPushkin
12.10.2017
11:50:13

b0g3r
12.10.2017
11:50:22
Ну никто не запретит тебе так считать :)
Питон тоже ресурсы кушает