在此之前 python manage.py makemigrations - 完成,还有 python manage.py migrate - 完成
我不知道发生了什么,在我遵循的教程中,没有这样的错误——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 文章中添加了 Publication
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 有 bug 呢??据我所知,当我使用较低版本的 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'")