MySQLdb._exceptions.OperationalError: (1054, «Неизвестный столбец ‘SOMEOBJECT_id’ в ‘списке полей'»)

#python-3.x #linux #mysql-python #django-migrations #django-3.1

#python-3.x #linux #mysql-python #django-миграции #django-3.1

Вопрос:

Перед этим python manage.py makemigrations — готово, также python manage.py миграция — сделано

Я не знаю, что происходит, в руководстве, которому я следую, такой ошибки нет — синтаксис тот же в models.py:

        from django.db import models
    
    
    class Reporter(models.Model):
        first_name = models.CharField(max_length=30)
        last_name = models.CharField(max_length=30)
        email = models.EmailField()
    
        def __str__(self):
            return self.first_name
    
    
    class Article(models.Model):
        headline = models.CharField(max_length=30)
        pub_date = models.DateField()
        reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE)
    

      def __str__(self):
        return self.headline

    class Meta:
        ordering = ('headline',)
        
  

Которые переносятся, и в admin.py Статья, и Публикация будет добавлена

        Python 3.6.12 (default, Aug 18 2020, 02:08:22) 
        
            GCC 5.4.0 20160609 on linux*
        
            Type "help", "copyright", "credits" or "license" for more                information.
        

    InteractiveConsole
    >>> from MyApp.models import Article, Reporter
    >>> r = Reporter(first_name = 'John', last_name = Doe, e-mail = 'abc@gmail.com')
      File "<console>", line 1
    SyntaxError: keyword can't be an expression
    >>> r = Reporter(first_name = 'John', last_name = 'Doe', e-mail = 'abc@gmail.com')
      File "<console>", line 1
    SyntaxError: keyword can't be an expression
    >>> r = Reporter(first_name = 'John', last_name = 'Doe', email = 'abc@gmail.com')
    >>> r.save()
    >>> r1 = Reporter(first_name = 'Boris', last_name = 'Milanovic', email = 'xyz@gmail.com')
    >>> r1.save()
    >>> from datetime import date
    >>> a = Article(headline = 'this is our first article', pub_date = date(2020, 11, 01, reporter=r)
      File "<console>", line 1
        a = Article(headline = 'this is our first article', pub_date = date(2020, 11, 01, reporter=r)
                                                                                       ^
    SyntaxError: invalid token
    >>> a = Article(headline = 'this is our first article', pub_date = date(2020, 11, 01), reporter=r)
      File "<console>", line 1
        a = Article(headline = 'this is our first article', pub_date = date(2020, 11, 01), reporter=r)
                                                                                       ^
    SyntaxError: invalid token
    >>> a = Article(headline = 'this is our first article', pub_date = date(2020, 11, 1), reporter=r)
    >>> a.save()
    Traceback (most recent call last):
      File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
        return self.cursor.execute(sql, params)
      File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 73, in execute
        return self.cursor.execute(query, args)
      File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/MySQLdb/cursors.py", line 206, in execute
        res = self._query(query)
      File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/MySQLdb/cursors.py", line 319, in _query
        db.query(q)
      File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/MySQLdb/connections.py", line 259, in query
        _mysql.connection.query(self, query)
    MySQLdb._exceptions.OperationalError: (1054, "Unknown column 'reporter_id' in 'field list'")
  

Итак, может ли быть, что в этой версии Django 3.1.2 есть ошибка?? Поскольку я знаю, что когда я работал со многими-ко-многим, конечно, с более низкой версией Django (2.1 или 2.0.1, у меня не было этой проблемы).

Есть предложения? = И я вижу, что сейчас многие люди сталкиваются с той же проблемой…

 ***Name of App and objects are irelevant, apply them to yours and tell me and what can I do wrong and where I am and thousands are doing wrong. ***

I got to the point to edit connections.py something regarding cursor (reocurring thing, not sure) but didn't apply ...

First I was doing with --fake (migrations) but then I somehow, when dropped all problematic tables the migrations are working.

**UPDATE FOR MORE DETAILS**

[Screenshot of my project 1][1] ,   
[Project settings 1][2]  ,   
[Screenshot of project settings.py 2][3]  ,   
[Fresh migration file 0001...py where is more described what's done in mirations][4]  ,   
  
  [1]: https://i.stack.imgur.com/7BE5v.png
  [2]: https://i.stack.imgur.com/6bzv6.png
  [3]: https://i.stack.imgur.com/jTlol.png
  [4]: https://i.stack.imgur.com/oVrAF.png
  

ОБНОВЛЕНИЕ ПО ЭТОМУ ПОВОДУ: я удалил файл кэша, удалил предыдущие миграции, и все же я получаю следующую ошибку: ** Я вижу, что у многих людей здесь такая же проблема, я просмотрел все, но ничего не помогает. Пожалуйста, помогите.. Итак, это ошибка:

     Python 3.6.12 (default, Aug 18 2020, 02:08:22) 
    [GCC 5.4.0 20160609] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    
       
    
     (InteractiveConsole)
    
    >>> from MyApp.models import Article, Reporter
    >>> r = Reporter(first_name = 'Parwiz', last_name = 'Something', `email = 'xsx@sf.com')`
    >>> r.save()
    >>> from datetime import date
    >>> a = Article(headline = 'this is our first article', pub_date = `date(2020, 11, 3), reporter=r)`
    >>> a.save()
     
    
       Traceback (most recent call last):
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
            return self.cursor.execute(sql, params)
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 73, in execute
            return self.cursor.execute(query, args)
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/MySQLdb/cursors.py", line 206, in execute
            res = self._query(query)
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/MySQLdb/cursors.py", line 319, in _query
            db.query(q)
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/MySQLdb/connections.py", line 259, in query
            _mysql.connection.query(self, query)
        MySQLdb._exceptions.OperationalError: (1054, "Unknown column 'reporter_id' in 'field list'")
        
  

Приведенное выше исключение было прямой причиной следующего исключения:

     Traceback (most recent call last):
          File "<console>", line 1, in <module>
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/models/base.py", line 754, in save
            force_update=force_update, update_fields=update_fields)
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/models/base.py", line 792, in save_base
            force_update, using, update_fields,
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/models/base.py", line 895, in _save_table
            results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw)
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/models/base.py", line 935, in _do_insert
            using=using, raw=raw,
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/models/manager.py", line 85, in manager_method
            return getattr(self.get_queryset(), name)(*args, **kwargs)
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/models/query.py", line 1254, in _insert
            return query.get_compiler(using=using).execute_sql(returning_fields)
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/models/sql/compiler.py", line 1397, in execute_sql
            cursor.execute(sql, params)
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/backends/utils.py", line 99, in execute
            return super().execute(sql, params)
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/backends/utils.py", line 66, in execute
            return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers
            return executor(sql, params, many, context)
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
            return self.cursor.execute(sql, params)
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/utils.py", line 90, in __exit__
            raise dj_exc_value.with_traceback(traceback) from exc_value
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
            return self.cursor.execute(sql, params)
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 73, in execute
            return self.cursor.execute(query, args)
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/MySQLdb/cursors.py", line 206, in execute
            res = self._query(query)
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/MySQLdb/cursors.py", line 319, in _query
            db.query(q)
          File "/home/Desktop/RelationshipsInDjango/lib/python3.6/site-packages/MySQLdb/connections.py", line 259, in query
            _mysql.connection.query(self, query)
        django.db.utils.OperationalError: (1054, "Unknown column 'reporter_id' in 'field list'")
  

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

1. эта ошибка обычно возникает, когда вы забываете выполнить команду migrate после миграции. Выполните следующие команды одну за другой. python manage.py makemigrations затем python manage.py migrate

2. Я все это сделал: (RelationshipsInDjango) root@dev:/home/Desktop/RelationshipsInDjango/RelationshipsInDjango # питон manage.py makemigrations Никаких изменений не обнаружено (RelationshipsInDjango) root@dev:/home/Desktop/RelationshipsInDjango/RelationshipsInDjango # питон manage.py выполняемые операции миграции: Применить все миграции: MyApp, admin, auth, contenttypes, сеансы Запущенные миграции: миграции не применяются. (RelationshipsInDjango) root@dev:/home/Desktop/RelationshipsInDjango/RelationshipsInDjango#

3. вы удалили что-то из базы данных, например, какую-то предыдущую модель чего-либо? Если вы это сделали, вам также следует удалить файлы pycache. Затем вам нужно снова запустить эти 2 команды

4. есть несколько ссылок для вас docs.djangoproject.com/en/dev/intro/tutorial02

5. Возможно, у меня есть, но я не вижу pycache, который я использую PyCharm Pro