Admin strxfrm mac #81
1 changed files with 8 additions and 2 deletions
|
@ -7,6 +7,7 @@ import locale
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.contrib.admin import AdminSite
|
from django.contrib.admin import AdminSite
|
||||||
from django.contrib.flatpages.models import FlatPage
|
from django.contrib.flatpages.models import FlatPage
|
||||||
|
import logging
|
||||||
|
|
||||||
# Note: we are renaming the original Admin and Form as we import them!
|
# Note: we are renaming the original Admin and Form as we import them!
|
||||||
from django.contrib.flatpages.admin import FlatPageAdmin as FlatPageAdminOld
|
from django.contrib.flatpages.admin import FlatPageAdmin as FlatPageAdminOld
|
||||||
|
@ -56,8 +57,13 @@ def get_app_list(self, request, app_label=None):
|
||||||
|
|
||||||
|
|
||||||
# Sort the models alphabetically within each app.
|
# Sort the models alphabetically within each app.
|
||||||
for app in app_list:
|
try: # na macu nefunguje locale.strxfrm :-/ proto je tu try except block
|
||||||
app['models'].sort(key=lambda x: locale.strxfrm(x['name'].lower()))
|
for app in app_list:
|
||||||
|
app['models'].sort(key=lambda x: locale.strxfrm(x['name'].lower()))
|
||||||
|
except OSError as e:
|
||||||
|
# locale.strxfrm nefunguje na macu... :-/ -> neprovede se řazení
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
logger.error(e)
|
||||||
|
|||||||
|
|
||||||
return app_list
|
return app_list
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue
Aspoň u mně tohle vygeneruje něco typu
2025-01-14 19:46:39,302 - mamweb.admin - ERROR - OSError: Invalid argument
a nic víc, což není moc užitečné (nikde není odkaz přímo do zdrojáku ani chybová hláška nejde najít ve zdrojácích). Navrhuji něco typulogger.error(f"Zdá se, že nefunguje strxfrm: {e}; admin bude špatně seřazený.")
I mean, měnit to teď asi nebudu, ale aspoň pro příště, prosím. Jinak vyrobíme web, který generuje náhodné errory, které nepůjde dohledat… (A ano, tím myslím, že
logger.error('Kočka leze dírou!')
je v tomhle místě možná užitečnější, as long as ta kočka dírou nepoleze úplně všude…)(A pročže to není
logger.warning
? Funkčnost webu to omezuje jen v omezeném rozsahu… Ale asi je to jedno…)Za mě
logger.error('Kočka leze dírou!')
je úplně k ničemu z toho pohledu, že vůbec netušíš, proč to spadlo (a pak to může spadnout z nějakého absurdního důvodu, který se jen tak nezopakuje, a budeme lovit duchy). A proto jsem něco podobného Vaškovi zatrhl a nechal ho vypisovat chybu.To je trochu smutné, že to nenapíše nic víc. Neumíme tu chybu vypsat nějak použitelněji?
Proto navrhuji
….error(f"…{e}…")
. A přijde mi, že stejně v ≥80% případů při chybě budu potřebovat koukat do kódu, takže hlavně potřebuji umět najít místo v kódu (pramení ze zkušenosti s lovením divných bugů v náhodných kusech SW). A to není argument proti tomu tam mít actually co se stalo (byť EINVAL je důvod jak noha…), ale pro to mít před ním / v okolí nějakou věc, které se při lovení chyby půjde chytit. (Teoreticky se dá vypsat celý traceback, což trochu může pomoci…)A ano, hodí se i vědět, jak kód reprodukovat, ale to (a) obstará i komentář na příslušném místě v kódu (ten tam je), (b) se vykouká případně o dost snadněji z okolí toho kódu a (c) v tomhle případě se to nejspíš bude na jednom HW chovat konzistentně pořád.