Где в Django Charfield() max_length определена как обязательная?
У меня есть приложение Django, и я пытаюсь понять логику, как правильно читать документацию, чтобы, например, создать объект Charfield.
Вот моя модель:
from django.db import models
class Person(models.Model):
f_name = models.CharField()
. . . . . .
Если я запускаю приложение, то получаю ошибку:
Charfields must define a 'max_length' attribute
Я понял, что мне нужно сделать:
f_name = models.CharField(max_length=40)
Но почему? Когда я читаю код для Charfield, его там нет, поэтому я читаю код для его суперкласса Field, но я не вижу, где max_length устанавливается обязательным!
Прошу помощи (новичок в oop)
Спасибо :)
Технически, проверка находится прямо здесь, в определении CharField
, как проверка системы Django (def _check_max_length_attribute(self, **kwargs):
):
def _check_max_length_attribute(self, **kwargs):
if self.max_length is None:
return [
checks.Error("CharFields must define a 'max_length' attribute.",
obj=self,
id="fields.E120",
)
]
# ...
Подключается для проверки системы Django на наличие CharFields
в функции check
чуть выше.
Для справки, я нашел его, просто поискав CharFields must define a
в кодовой базе Django.