モデルのフィールド(models.pyのモデルに登録する名前)について
全て省略可能・・・!
モデルフィールドリファレンスはこちら
型が存在する
例えば、Djangoチュートリアルで学ぶFieldは何があっただろう?
3個
4個
5個
6個
答え
4個
CharField
DateTimeField
ForeignKey
IntegerField
code: 最終的なもの
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField("date published")
def __str__(self):
return self.question_text
@admin.display(
boolean=True,
ordering="pub_date",
description="Published recently?",
)
def was_published_recently(self):
now = timezone.now()
return now - datetime.timedelta(days=1) <= self.pub_date <= now
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
def __str__(self):
return self.choice_text
じゃあ・・・ Fieldは何個あるか?(リレーションシップフィールドも含め)
AutoField
BigAutoField
BigIntegerField
BinaryField
BooleanField
CharField
DateField
DateTimeField
DecimalField
DurationField
EmailField
FileField
FileField と FieldFile
FilePathField
FloatField
GenericIPAddressField
ImageField
IntegerField
JSONField
PositiveBigIntegerField
PositiveIntegerField
PositiveSmallIntegerField
SlugField
SmallAutoField
SmallIntegerField
TextField
TimeField
URLField
UUIDField
ManyToManyField
OneToOneField
知ってた?フィールドの数って31個あんねん(突然のアンミカ?)
自分が格納したいデータに適したFieldがあるかどうかを調べるのが大事(と思っている)
例えば・・・
メールアドレスを登録するにはEmailField
数字を登録するにも
IntegerField
PositiveIntegerField
文字でも
CharField
TextField
UUIDFieldやSlugField
これらを知らなかった場合、(動きはするが)CharFieldで頑張る、みたいなことも考えうる