Size: a a a

Django [ru] #STAY HOME

2019 March 21

DT

Dan Tyan in Django [ru] #STAY HOME
Artyem Klimenko
а точно при записи в базу? может на моменте поступления данных, их валидировать и отрезать лишнее? если конечно это какое-то АПИ или интерфейс
если UrlField
то валидацию не пройдет
источник

DT

Dan Tyan in Django [ru] #STAY HOME
CharField со своим валидатором
источник

MK

Maxim Kolesnikov in Django [ru] #STAY HOME
Dan Tyan
CharField со своим валидатором
Вот не уверен, что валидатор подойдет.
Валидатор забракует поле со схемой. А мне надо принять его, но обрезать.

Сейчас посмотрю field.clean()
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Maxim Kolesnikov
Вот не уверен, что валидатор подойдет.
Валидатор забракует поле со схемой. А мне надо принять его, но обрезать.

Сейчас посмотрю field.clean()
у валидатора есть метод clean который вызывается
источник

DT

Dan Tyan in Django [ru] #STAY HOME
в нем можно обрезать что нужно
источник

MK

Maxim Kolesnikov in Django [ru] #STAY HOME
Dan Tyan
у валидатора есть метод clean который вызывается
Уверен, что у валидатора, а не поля? В доке не вижу.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
ну и у charfield-а не такие жесткие валидаторы
источник

DT

Dan Tyan in Django [ru] #STAY HOME
ты когда валидатор привязываешь к полю
источник

DT

Dan Tyan in Django [ru] #STAY HOME
он будет вызываться
источник

DT

Dan Tyan in Django [ru] #STAY HOME
для того чтобы использовать field.clean()
в любом случае надо переопределять save и в нем вызывать full_clean
источник

DT

Dan Tyan in Django [ru] #STAY HOME
вариант с валидатором будет примерно такой


@deconstructible
class UrlWithoutSheme(BaseValidator):    

   def clean(self, x):
       return x.replace('http://', '')
   
url = models.CharField(
   validators=[
       UrlWithoutSheme(),
   ]
)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
но эт надо править
источник

MK

Maxim Kolesnikov in Django [ru] #STAY HOME
Dan Tyan
вариант с валидатором будет примерно такой


@deconstructible
class UrlWithoutSheme(BaseValidator):    

   def clean(self, x):
       return x.replace('http://', '')
   
url = models.CharField(
   validators=[
       UrlWithoutSheme(),
   ]
)
Что за единичка?
источник

TM

Tim Mustafin in Django [ru] #STAY HOME
Боюсь предположить, но наверное это булиева единица
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Maxim Kolesnikov
Что за единичка?
не
, эт из реального кода взял
поправил пример
источник

А

Алексей in Django [ru] #STAY HOME
как вывести 2 квери в порядке следования, один за другим? нужно отсортировать сообщения одновременно непрочитанные сверху, но при этом внутри прочитанности и непрочитанности сортировать по времени
источник

А

Алексей in Django [ru] #STAY HOME
если просто сортировать по очереди, то порядок сбивается, даже если в order_by через запятую прописывать
источник

I

Ilya in Django [ru] #STAY HOME
Коллеги, вот я в django shell проверяю как моя функция работает с экземпляром модели. И если меняю то-то в функции, то простой повтор импорта не помогает - нужно перезагружать django shell и заново делать все необходимые импорты. Есть какое-то решение чтобы не делать каждый раз всю работу?
источник

MB

Muslim Beibytuly in Django [ru] #STAY HOME
Ilya
Коллеги, вот я в django shell проверяю как моя функция работает с экземпляром модели. И если меняю то-то в функции, то простой повтор импорта не помогает - нужно перезагружать django shell и заново делать все необходимые импорты. Есть какое-то решение чтобы не делать каждый раз всю работу?
reload module_name
источник

MK

Maxim Kolesnikov in Django [ru] #STAY HOME
Ilya
Коллеги, вот я в django shell проверяю как моя функция работает с экземпляром модели. И если меняю то-то в функции, то простой повтор импорта не помогает - нужно перезагружать django shell и заново делать все необходимые импорты. Есть какое-то решение чтобы не делать каждый раз всю работу?
Я бы предложил тесты писать вместо ручной работы.
источник