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'
Вернуться на верх