Django 2.x.x хувилбараас эхлээд python 3.xx
л ашиглана гэсэн болохоор гол кодуудаа python 3 -т тааруулан ѳѳрчлѳх хэрэгтэй. Жишээ нь __unicode__
ашиглаж байгааг __str__
болгох хэрэгтэй г.м. Python 3 compatible болгох хэсэг нэг их ажил биш учир уншигч танд ѳѳрт тань энэхүү зугаатай ажлыг үлдээе. Энгийн google хайлтанд гараад ирэх илэрц шүү. Тиймээс Django 2.0 ын ѳѳрчлѳлтүүдыг шууд хийгээд явъя.
ForeignKey
ашиглахадon_delete
заавал бичнэ.
class MyModel(models.Model):
group = ForeignKey(
'MyGroup',
on_delete=CASCADE,
)
2. Namspace ашиглаж байгаа route -ууд заавал app_name
шаардана.
urlpatterns = [
path('myapp/', include('my_app.urls', namespace='my_app', app_name='my_app')),
]
Тэгэхээр include хийгдэж буй url файл нь дараах ѳѳрчлѳлттэй байна.
app_name='my_app'
urlpatterns = [
# ...
]
Мѳн url
гэж бичихгүй оронд нь path
гэж бичнэ.
3. User object is_authenticated()
болон is_anonymous()
байхаа больсон
User ээс биш, моделын property болсон. Тэгэхээр дуудаж ашиглахдаа
user.is_authenticated() → user.is_authenticated
user.is_anonymous() → user.is_anonymous
4. urlresolver
-оос reverse
дуудахаа больсон
from django.core.urlresolvers import reverse
ингэж ашигладаг байсан нь доорхи замаар дууддаг болсон.
from django.urls import reverse
5. MIDDLEWARE_CLASSES -> MIDDLEWARE
болсон
settings.py
дотор MIDDLEWARE_CLASSES ѳѳрчлѳгдѳн MIDDLEWARE болсон.
6. django.shortcut.render_to_response()
байхаа больсон
render_to_response()
хуучирч django.shortcuts.render()
ашиглах нь
7. SessionAuthenticationMiddleware шаардлагагүй болсон.
Django 1.10 аас эхлээд энэ middleware цаанаасаа enabled болохоор
Дээрх ѳѳрчлѳлтүүдийг зѳвхѳн ѳѳрт байгаагаа ѳѳрчлѳѳрэй. Ѳмнѳх хувилбар ахиулах гэж ядаргаатай санагдаж байвал шууд django 2.0 дээр тѳслѳѳ эхлүүлээд доторхоо зѳѳсѳн ч болно.
Манай demo blog -ын хувьд аль болох хоцрогдох функцууд ашиглаагүй учраас, мѳн дээрх ѳѳрчлѳлтѳѳс ашиглаж байгаа зүйл бага болохоор одоохондоо ямар ч асуудалгүй шилжлээ.
Update хийгдсэн тѳслийн эх код github дээр байршсан.
Нийтлэл таалагдсан бол clap & share хийж бусад хэрэгтэй хүмүүст нь хүргээрэй.