🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ ارمغان ابراهیمی
why not enum
Reza Mobaraki حل شده توسط Reza Mobaraki

chera enum estefade nakardin baraye choice option

سلام وقت بخیر


ممنون میشم کد مد نظرتون رو ارسال کنین تا بهتر راهنماییتون کنم

پوریا شفیعی ۱۱ شهریور ۱۴۰۲، ۱۹:۰۲
class StatusAEnum(Enum):
    OK = 'ok'
    PENDING = 'pending'
    FAILED = 'failed'
class StatusBEnum(Enum):
    WAITING = 'waiting'
    CANCELLED = 'cancelled'
    READY = 'ready'
class SomeModelWithChoices(models.Model):
    status_A = EnumChoiceField(
        StatusAEnum,
        default=StatusAEnum.PENDING
    )
    status_B = EnumChoiceField(
        StatusBEnum,
        default=StatusBEnum.WAITING
    )

https://www.hacksoft.io/blog/introducing-django-enum-choices-2

ya

from django.utils.translation import gettext_lazy as _
class Student(models.Model):
    class YearInSchool(models.TextChoices):
        FRESHMAN = 'FR', _('Freshman')
        SOPHOMORE = 'SO', _('Sophomore')
        JUNIOR = 'JR', _('Junior')
        SENIOR = 'SR', _('Senior')
        GRADUATE = 'GR', _('Graduate')
    year_in_school = models.CharField(
        max_length=2,
        choices=YearInSchool.choices,
        default=YearInSchool.FRESHMAN,
    )

https://stackoverflow.com/questions/54802616/how-can-one-use-enums-as-a-choice-field-in-a-django-model

ارمغان ابراهیمی ۱۲ شهریور ۱۴۰۲، ۰۸:۳۷

درود وقت بخیر

بسته به نیازمندی‌های پروژه و best practice‌های پیاده سازی شده در پروژه ، چنین مسائلی تصمیم گرفته میشه .

در هر صورت هر دو درست هستش. تنها چیزی که اهمیت داره اینه که ببینید کدام یک حافظه کمتری مشغول میکنه در حین اجرای برنامه

موفق باشید ?

بهترین پاسخ
Reza Mobaraki ۱۳ شهریور ۱۴۰۲، ۱۱:۳۶