Получение типа в django, но поля, похоже, определены правильно

#python #django

Вопрос:

Я совершенно новичок в django и не могу понять, почему это происходит. Вот моя модель, которую я добавил в настройки конфигурации «Установленные приложения», и я перенес:

 class User(models.Model):  name = models.CharField(max_length = 200),  state = models.CharField  

В оболочке я импортирую модель следующим образом:

from homepage.models import User

затем я пытаюсь создать нового пользователя, например:

a = User(name='Alex', state='Alberta')

и это приводит к этой ошибке, которая для меня не имеет смысла, потому что я определил поля схемы пользователя выше: я знаю, что мне чего-то не хватает, например, возможно, я должен что-то добавить в свою views.py файл перед запуском оболочки, но я просто не знаю. Любое направление приветствуется! Спасибо!

 TypeError Traceback (most recent call last) <ipython-input-3-88cc332f436e> in <module> ----> 1 a = User(name='Alex Honing', state='Alberta')  /usr/local/anaconda3/envs/pyfinance/lib/python3.9/site-packages/django/db/models/base.py in __init__(self, *args, **kwargs)  501 pass  502 for kwarg in kwargs: --> 503 raise TypeError("%s() got an unexpected keyword argument '%s'" % (cls.__name__, kwarg))  504 super().__init__()  505 post_init.send(sender=cls, instance=self)  TypeError: User() got an unexpected keyword argument 'name'  In [4]: a = User(name = 'Alex', state ='Alberta')  

Ответ №1:

В вашей модели есть дополнительный , элемент, и поле состояния не создается. Все поля, объявленные в моделях, должны быть созданы.

Допустимая реализация будет выглядеть примерно так:

 class User(models.Model):  name = models.CharField(max_length=200)  state = models.CharField(max_length=200)  

Комментарии:

1. а ну понятно. Спасибо, что это сработало!