🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ فرهاد واعظ‌زاده
why not enum
یازان علی‌آبادی حل شده توسط یازان علی‌آبادی

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‌های پیاده سازی شده در پروژه ، چنین مسائلی تصمیم گرفته میشه .

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

موفق باشید ?

بهترین پاسخ
یازان علی‌آبادی ۱۳ شهریور ۱۴۰۲، ۱۱:۳۶