Django memo: models.py 選択肢

class Foodの上に、CATEOGRY = ()とすることで選択肢を作成

model内でCharField()の引数にchoices=CATEGORYを追加で完了。

これするのに何日かかったのやら

from django.db import models
from django.contrib.auth.models import User
from django.core.validators import MaxValueValidator, MinValueValidator
# Create your models here.
CATEGORY = (('breakfast','朝食'),('lunch','昼食'),('dinner','夕食'), ('snack','間食'))
class Food(models.Model):
 user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
 category = models.CharField(max_length=200, choices=CATEGORY)
 name = models.CharField(max_length=200)
 kcal = models.PositiveSmallIntegerField()
 protein = models.DecimalField(max_digits=4, decimal_places=1, blank=True, null=True, default=0.0, validators=[MaxValueValidator(999.9), MinValueValidator(0.0)])
 fat = models.DecimalField(max_digits=4, decimal_places=1, blank=True, null=True, default=0.0, validators=[MaxValueValidator(999.9), MinValueValidator(0.0)])
 carb = models.DecimalField(max_digits=4, decimal_places=1, blank=True, null=True, default=0.0, validators=[MaxValueValidator(999.9), MinValueValidator(0.0)])
 description = models.TextField(null=True, blank=True)
 eaten_date = models.DateField(editable=True, blank=True, null=True)
 created = models.DateTimeField(auto_now_add=True)
 def __str__(self):
     return self.name

この記事が気に入ったらサポートをしてみませんか?