Привет!
Надоело просто так скучать на изоляции, решил изучить Django.
Что с самого начала бросается в глаза - везде строки и динамические атрибуты. Почему так? Это же неудобно ни разу
from django.contrib import admin
from . models import Bb
class BbAdmin(admin.ModelAdmin):
list_display = ('title', 'content', 'price', 'published')
list_display_links = ('title', 'content')
search_fields = ('title', 'content')
class BbAdmin(admin.ModelAdmin):
list_display = (Bb.title, Bb.content, Bb.price, Bb.published)
...
Другой пример:
mm = MainModel.objects.get(pk=1)
another = mm.linked_set.filter(pubdate_lt=date)
Почему не:
mm = MainModel.objects.get(pk=1)
another = mm.set(Linked).filter(lt(Linked.pubdate, date)
Или вот ещё, банальные url'ы:
urlpatterns = [
path('polls/', include('polls.urls')),
]
Заменить на:
from . polls import urls as purls
urlpatterns = [
path('polls/', include(purls)),
]
Ну и в таком духе. Да, где-то получится писать чуть больше, но зато такой код будет инспектируемый, легко проверяемый и поддерживаемый. Если где опечатался это видно сразу, прямо в IDE. Да банальное автоматическое дополнение!
Или я не понимаю что-то?