Size: a a a

Django [ru] #STAY HOME

2020 May 29

VK

Vladislav K in Django [ru] #STAY HOME
Alex Dem
скорее всего надо заимпортить

а потом
try:
...
except ProtectedError:
.... do something ...
А в каком моменте отлавливать?
Это можно в модели реализовать?
источник

AD

Alex Dem in Django [ru] #STAY HOME
Vladislav K
А в каком моменте отлавливать?
Это можно в модели реализовать?
откуда ошибка берется?
это on_delete=model.protected

правильно?
источник

VK

Vladislav K in Django [ru] #STAY HOME
Alex Dem
откуда ошибка берется?
это on_delete=model.protected

правильно?
да
источник

VK

Vladislav K in Django [ru] #STAY HOME
product = models.ForeignKey(
   Product,
   on_delete=models.PROTECT,
   related_name="workorderlines",
   null=True,
   blank=True,
)
источник

ЮІ

Юкіш Іван in Django [ru] #STAY HOME
Vladislav K
Всем доброго дня!
Нужно отловить ошибку ProtectedError чтобы выдать нормальное сообщение пользователю.
Подскажите как это реализовать лаконично и просто.
На просторах интернета выглядит все давольно сложновато)
Может есть какой метод delete переорпеделить?
Версия  Django 2.1.7
Спасибо за внимание.
источник

ЮІ

Юкіш Іван in Django [ru] #STAY HOME
если во вюхе то вот так можно
источник

AD

Alex Dem in Django [ru] #STAY HOME
Vladislav K
да
ну вот
вообще, если там стоит протектед, то как бы подразумевается, что удалять не нужно вообще
о если хочется что-то такое навелосипедить и ловить именно ошибку, то надо делать тогда по паттерну что я выше описал в том месте, где, собственно, падает
источник

VK

Vladislav K in Django [ru] #STAY HOME
Alex Dem
ну вот
вообще, если там стоит протектед, то как бы подразумевается, что удалять не нужно вообще
о если хочется что-то такое навелосипедить и ловить именно ошибку, то надо делать тогда по паттерну что я выше описал в том месте, где, собственно, падает
Паттерн я понял. Я просто еще очень слаб в архитектуре джанги)) Не понимаю где ее отлавливать можно в какой фукнции например или еще что)
источник

AD

Alex Dem in Django [ru] #STAY HOME
Vladislav K
Паттерн я понял. Я просто еще очень слаб в архитектуре джанги)) Не понимаю где ее отлавливать можно в какой фукнции например или еще что)
ну у тебя есть же ошибка, правильно?
источник

VK

Vladislav K in Django [ru] #STAY HOME
да
источник

AD

Alex Dem in Django [ru] #STAY HOME
Vladislav K
да
тут не столько в джанге дело


вот, значит есть строка в которой происходит этот сбой
возьми это строку/часть блока/весь блок

в
try:
... here is
except ProtectedError:
.... do something ...
источник

AD

Alex Dem in Django [ru] #STAY HOME
Vladislav K
Всем доброго дня!
Нужно отловить ошибку ProtectedError чтобы выдать нормальное сообщение пользователю.
Подскажите как это реализовать лаконично и просто.
На просторах интернета выглядит все давольно сложновато)
Может есть какой метод delete переорпеделить?
Версия  Django 2.1.7
Спасибо за внимание.
источник

AD

Alex Dem in Django [ru] #STAY HOME
def delete(self, request, *args, **kwargs):
           """
           Call the delete() method on the fetched object and then redirect.
           """
          ....
          try:
               self.object.delete()
               return HttpResponseRedirect(success_url)
          except models.ProtectedError:
               return HttpResponseRedirect(error_url)

вот тут реализация того о чем я говорю
источник

AD

Alex Dem in Django [ru] #STAY HOME
Vladislav K
Всем доброго дня!
Нужно отловить ошибку ProtectedError чтобы выдать нормальное сообщение пользователю.
Подскажите как это реализовать лаконично и просто.
На просторах интернета выглядит все давольно сложновато)
Может есть какой метод delete переорпеделить?
Версия  Django 2.1.7
Спасибо за внимание.
другой путь переопределить on_delete=models.CASCADE или models.SET_NULL
но если кто-то до тебя писал protected, вероятно, он знал зачем нужен именно protected
источник

VK

Vladislav K in Django [ru] #STAY HOME
Alex Dem
другой путь переопределить on_delete=models.CASCADE или models.SET_NULL
но если кто-то до тебя писал protected, вероятно, он знал зачем нужен именно protected
Да. Тут точто протектед надо специально чтобы удалить не могли)
Задача чисто человеческую ошибку выдавать а не 500 =)
Спасибо) буду разбираться)
источник

AD

Alex Dem in Django [ru] #STAY HOME
Vladislav K
Да. Тут точто протектед надо специально чтобы удалить не могли)
Задача чисто человеческую ошибку выдавать а не 500 =)
Спасибо) буду разбираться)
тут делать нечего =)
там где падает, загоняешь .delete в трай, в эксепте отдаешь ответ-заглушку
профит!
источник

VK

Vladislav K in Django [ru] #STAY HOME
Alex Dem
тут делать нечего =)
там где падает, загоняешь .delete в трай, в эксепте отдаешь ответ-заглушку
профит!
Ну впринципе да) сейчас так и сделаю)) нашел по стек трейсу где падате0
источник

I

Ilya in Django [ru] #STAY HOME
После деплоя отвалилась регистрация гугл
https://imgur.com/ZXPgtHR
Встречался кто с этим?
источник

МП

Михаил Павлов... in Django [ru] #STAY HOME
Ilya
После деплоя отвалилась регистрация гугл
https://imgur.com/ZXPgtHR
Встречался кто с этим?
Проверьте настройки приложения в гугл
источник

МП

Михаил Павлов... in Django [ru] #STAY HOME
В частности redirect_url
источник