Я хочу разработать приложение для голубей в django, и моя модель голубей имеет поле состояния. Для этого я должен определить другую модель с именем Status, где будут храниться мои статусы.
Моя модель
class PigeonStatus(models.Model):
STATUSES = [
('Activ', 'Activ'),
('Lost', 'Lost'),
('Dead', 'Dead'),
('For Sale', 'For Sale')
]
status = models.CharField(max_length=15, choices=STATUSES, unique=True)
in_loft = models.BooleanField('In loft?')
def __str__(self):
return self.status
class Pigeon(models.Model):
pigeon_id = models.AutoField(primary_key=True)
year = models.CharField(max_length=4, null=False, blank=False)
band = models.CharField(max_length=25, null=False, blank=False, unique=True)
...
status = models.ForeignKey(PigeonStatus, on_delete=models.CASCADE, null=False, blank=False)
Мой вопрос: как я могу установить логическое значение для каждого статуса? Я хочу запросить вот так: Pigeon.status.in_loft = true
. Из вариантов, Activ и For Sale должны иметь in_loft=True
, а Lost, Dead должны иметь in_loft=False
. Кто-нибудь может ответить на это? Есть ли другой способ (может быть, лучше) установить статус голубя и обратиться к нему позже? Спасибо!