Django way (روشهای بهتر کار کردن با جنگو) , S1

توی این سری پست ها قصد دارم که یه سری روش های راحت تر کار کردن ( یا تمیز تر کار کردن یا هر چیزی که به نظرم باحال باشه ) با فریمورک محبوب جنگو رو به اشتراک بزارم و اینم قسمت اوله امیدوارم که براتون جالب باشه همچنین شما هم میتونید نظراتتون و روش هایی که بلدید رو هم با من به اشتراک بزارید خیلی خوشحال میشم. :)

فکر کنم برای قسمت اول از یه سری روش های آسون و جالب استفاده کنیم خوب باشه اولین مورد برای امروز :

روش مدیریت ثابت ها:

منظور از ثابت ها در این مورد اعداد یا رشته های هستن که توی برنامه ما تغییر نمیکنن همچنین اونقدر هم عمومی نیستند که در فایل settings.py قرار بگیرند سوال اینه که کجا باید بزاریمش ؟ به طور معمول توی مدل ها تعریفش میکنن اینطور:

# ./car/models.py
from django.db import models

class Car(models.Model):
    RED = 'red'
    BLUE = 'blue'
    WHITE = 'white'
    BLACK = 'black'
    COLORS = (
         (RED, &quotًRed&quot),
         (BLUE, &quotBlue&quot),
        (WHITE, &quotWhite&quot),
        (BLACK, &quotBlack&quot),
    )
    color = models.CharField(max_length=80, choices=COLORS)
    name = models.CharField(max_length=255)
    company = models.CharField(max_length=255)

خب این روش خوبه... کار رو راه میندازه... ولی جالب نیست!!! یه مقدار کثیف کاریه... توی کلاس مدلمون الکی کد زدیم و همه چیز یکم قاطی شده به جای این کار میشه ثابت هامون رو توی فایل apps.py تعریق کنیم و از اونجا import کنیمشون اینطوری:

# ./car/apps.py 
from django.apps import AppConfig

class CarConfig(AppConfig):
   name = 'product'
   RED = 'red'
   BLUE = 'blue'
   WHITE = 'white' 
   BLACK = 'black'
   COLORS = (
      (RED, &quotًRed&quot),
      (BLUE, &quotBlue&quot),
      (WHITE, &quotWhite&quot),
      (BLACK, &quotBlack&quot),
    )

--------------------------------------------------------------------------------------------

# ./car/models.py
from django.db import models
from .apps import CarConfig as conf

class Car(models.Model):
    color = models.CharField(max_length=80, choices=conf.COLORS)
    name = models.CharField(max_length=255)
    company = models.CharField(max_length=255)

این روش به نظر تمیز تر میاد D: فایل ثابت هامون از فایل کد هامون جدا شد و همه چیز جای خودشه