Django AttributeError: объект 'Model' не имеет атрибута 'field'
Я новичок в Django и пытаюсь создать простой тестовый проект с одной моделью Customer.
models.py:
from django.db import models
class Customer(models.Model):
first_name = models.CharField(name='First name', max_length=20)
last_name = models.CharField(name='Last name', max_length=20)
def __str__(self) -> str:
return self.first_name
Однако, когда я пытаюсь ввести эту таблицу в консоль администратора, она выдает ошибку AttributeError: 'Customer' object has no attribute 'first_name'
. Я пробовал перезапустить сервер, но это не помогает.
Если я меняю метод на что-то другое, кроме моих полей, то проблема исчезает:
def __str__(self) -> str:
return "1"
Даже если я делаю return str(self.pk)
, все работает нормально.
Но мне нужно иметь first_name
в качестве базового представления моих объектов Customer. Так что же я упустил?
Я понял, в чем дело. Проблема заключалась в параметре "name". Если вы указываете его, то ваша переменная должна соответствовать ему.
first_name = models.CharField(name='First name', max_length=20) # <- 'name=' is the problem
На самом деле мне нужен был параметр verbose_name
. Он идет первым, если вы ничего не указали. Итак, вот решение:
first_name = models.CharField('First name', max_length=20) # or verbose_name='First name'