Django 006: Django 1.x.x дээрх тѳслийг Django 2.x.x migrate хийх нь

Zorig
limitx
Published in
2 min readAug 13, 2018

Зээ, ѳмнѳ нь амласан тул ингээд django 2.0 руу шилжүүлэх ажилруу оръё.

Django 2.x.x хувилбараас эхлээд python 3.xx л ашиглана гэсэн болохоор гол кодуудаа python 3 -т тааруулан ѳѳрчлѳх хэрэгтэй. Жишээ нь __unicode__ ашиглаж байгааг __str__ болгох хэрэгтэй г.м. Python 3 compatible болгох хэсэг нэг их ажил биш учир уншигч танд ѳѳрт тань энэхүү зугаатай ажлыг үлдээе. Энгийн google хайлтанд гараад ирэх илэрц шүү. Тиймээс Django 2.0 ын ѳѳрчлѳлтүүдыг шууд хийгээд явъя.

  1. 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 хийж бусад хэрэгтэй хүмүүст нь хүргээрэй.

--

--

Zorig
limitx
Editor for

Lover(Programming, Anime, Manga, Music, Movie, FilmPhotography, Aikido, Travel, Internet, Open Source..) Tinker, Reader, Parkour, Web Developer, host of devnote