Size: a a a

Django [ru] #STAY HOME

2019 December 03

A

Alex in Django [ru] #STAY HOME
Ребят, есть модель Заказа (Orders). Необходимо и на REST API и в Админке, сделать так.
Чтобы при изменении статуса заказа например на Доставлен или Отменен (ChoiceField),
заказ переходил в режим ReadOnly, то есть не редактировался бы. Или по крайней мере, чтобы закрылась возможность менять статусы. Как это лучше реализовать? В Модели или отдельно в Admin.py и на Rest? И как примерно это реализовать, если на стороне модели делать это?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Anton Igin
Наверное, единственный надежный способ защитить данные - разрешить вход в сервер строго из белого списка ip
А на сколько жёсткие требования к сохранению информации?
источник

VY

Vitaly Yurusov in Django [ru] #STAY HOME
Есть такая утила fail2ban она банит клиента при нескольких неудачных попыток авторизации.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Alex
Ребят, есть модель Заказа (Orders). Необходимо и на REST API и в Админке, сделать так.
Чтобы при изменении статуса заказа например на Доставлен или Отменен (ChoiceField),
заказ переходил в режим ReadOnly, то есть не редактировался бы. Или по крайней мере, чтобы закрылась возможность менять статусы. Как это лучше реализовать? В Модели или отдельно в Admin.py и на Rest? И как примерно это реализовать, если на стороне модели делать это?
Ну отмену редактирования можно в модели сделать
источник

AI

Anton Igin in Django [ru] #STAY HOME
Dan Tyan
А на сколько жёсткие требования к сохранению информации?
Это мой личный проект, я тут пишу сервис автоматических ставок )
Учитывая, что речь о реквизитах аккаунтво с деньгами, хотелось бы знать лучшие варианты защиты, чтобы можно было хоть военные отчеты хранить
источник

AI

Anton Igin in Django [ru] #STAY HOME
Vitaly Yurusov
Есть такая утила fail2ban она банит клиента при нескольких неудачных попыток авторизации.
при неудачных попытках - это если перебором идут. Мне нравится предложение, но все же если удалось умыкнуть всю пару входа - не поможет
источник

A

Alex in Django [ru] #STAY HOME
Dan Tyan
Ну отмену редактирования можно в модели сделать
А каким образом?
источник

D

Dmitry in Django [ru] #STAY HOME
Anton Igin
при неудачных попытках - это если перебором идут. Мне нравится предложение, но все же если удалось умыкнуть всю пару входа - не поможет
тут только бог поможет
источник

AI

Anton Igin in Django [ru] #STAY HOME
Dmitry
тут только бог поможет
белый список ip еще - даже если умыкнут пару, то им еще понадобится физический доступ к машине
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Alex
А каким образом?
Тебе при ините объекта надо сохранять статус

И при попытке вызова save проверять это статус
источник

VY

Vitaly Yurusov in Django [ru] #STAY HOME
Anton Igin
белый список ip еще - даже если умыкнут пару, то им еще понадобится физический доступ к машине
С ip тоже норм
источник

A

Alex in Django [ru] #STAY HOME
Dan Tyan
Тебе при ините объекта надо сохранять статус

И при попытке вызова save проверять это статус
Прошу прощения, таким образом?
источник

A

Alex in Django [ru] #STAY HOME
class Orders(models.Model):
   """ Orders """
   status = models.CharField(choices=ORDER_STATUSES, null=True, max_length=150, default='accepted')

   def init(self):
     self.status = 'accepted'
источник

A

Alex in Django [ru] #STAY HOME
И как будет работать запрет, именно валидация ошибки и т.д?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Ну только не строкой
источник

DT

Dan Tyan in Django [ru] #STAY HOME
А текушее значение
источник

DT

Dan Tyan in Django [ru] #STAY HOME
В save
Поставишь
if self.status == '' :
Raise Exception
источник

DT

Dan Tyan in Django [ru] #STAY HOME
С телефона писать не удобно
источник

A

Alex in Django [ru] #STAY HOME
Dan Tyan
В save
Поставишь
if self.status == '' :
Raise Exception
class Orders(models.Model):
   """ Orders """
   status = models.CharField(choices=ORDER_STATUSES, null=True, max_length=150, default='accepted')

   def init(self):
     self.blocked_status = 'accepted'


 def save(self, .....):
   if self.status == self.blocked_status:
     raise ValidationError("Object cant be eddited any more")
   super().save(*args, **kwargs)
источник

A

Alex in Django [ru] #STAY HOME
Как-то так?
источник