Почему я получаю синтаксическую ошибку в make.i gmrations manage.py?

Я делаю тестовый проект с Python и Django (для целей обучения). В какой-то момент мне нужно создать приложение django под названием products, а затем в файле models.py в каталоге приложения products у меня есть этот код:

class Products (models.Model)
     title = models.TextField() 
     description = models.TextField()
     price = models.TextField()

и затем после добавления нового приложения в файл настроек, когда я посещаю, чтобы сделать миграции, как показано:

> python manage.py makemigrations 

Я получаю эту ошибку:

  Traceback (most recent call last):
      File "manage.py", line 15, in <module>
        execute_from_command_line(sys.argv)
      File "C:\django\lib\site-packages\django\core\management\__init__.py", line 371, in execute_from_command_line
        utility.execute()
      File "C:\django\lib\site-packages\django\core\management\__init__.py", line 347, in execute
        django.setup()
      File "C:\django\lib\site-packages\django\__init__.py", line 24, in setup
        apps.populate(settings.INSTALLED_APPS)
      File "C:\django\lib\site-packages\django\apps\registry.py", line 112, in populate
        app_config.import_models()
      File "C:\django\lib\site-packages\django\apps\config.py", line 198, in import_models
        self.models_module = import_module(models_module_name)
      File "C:\django\lib\importlib\__init__.py", line 127, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
      File "<frozen importlib._bootstrap>", line 983, in _find_and_load
      File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 724, in exec_module
      File "<frozen importlib._bootstrap_external>", line 860, in get_code
      File "<frozen importlib._bootstrap_external>", line 791, in source_to_code
      File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
      File "C:\django\mystore\products\models.py", line 5
        class Products(models.Model)
                                   ^
    SyntaxError: invalid syntax

 "

и затем та же ошибка возникает всякий раз, когда я пытаюсь использовать файл manage.py. Я не знаю, что я сделал неправильно, пожалуйста, помогите мне исправить это.

2 ответа

Вы пропустили двоеточие после объявления класса.

class Products(models.Model):

Также я бы предостерег вас от форматирования. Ваши имена полей должны располагаться слева. В Python две строки, которые не совпадают, считаются разными блоками кода.

Вы пропустили двоеточие после объявления класса

      class Products (models.Model)  #<<--- no semicolon
 title = models.TextField() 
 description = models.TextField()
 price = models.TextField()

Правильный код:

      class Products (models.Model):  #<<---  colon
 title = models.TextField() 
 description = models.TextField()
 price = models.TextField()
Другие вопросы по тегам