У меня проблема с миграциями в Python Django.Когда я пытаюсь выполнить pym manage.py makemigrations или мигрировать, появляется эта ошибка. 100
Traceback (последний вызов был последним): Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ db \ backends \ utils.py ", строка 65, в файле execute возвращают self.cursor.execute (sql, params) Файл" C: \ Source \ Git \ Suisseedu \ "resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ db \ backends \ mysql \ base.py ", строка 101, в файле execute выполнить self.cursor.execute (query, args) Файл" C: \ Source \ "Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ MySQLdb \ cursors.py ", строка 250, в файле execute self.errorhandler (self, exc, value) Файл" C: \ Source \ Git \ Suisseedu\ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ MySQLdb \ connections.py ", строка 50, в файле defaulterrorhandler поднимать значение ошибки Файл" C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \сайт-пакеты \ MySQLdb \ cursors.py», строка 247, в исполняемом файле res = self._query (query) Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ MySQLdb \ cursors.py", строка 412, в_query rowcount = self._do_query (q) Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ MySQLdb \ cursors.py", строка 375, в _do_query db.query (q) Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ MySQLdb \ connections.py", строка 276, в запросе _mysql.connection.query (self, query) _mysql_exceptions.ProgrammingError: (1146, «Таблица 'rc2.eduuser_role' не существует»)
Вышеприведенное исключение было прямой причиной следующего исключения:
Traceback (последний вызов был последним): Файл «manage.py», строка 17, в файле execute_from_command_line (sys.argv) «C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ core \ management__init __. Py", строка 363, в execute_from_command_lineУтилита util.execute (), файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ core \ management__init __. py", строка 355, в строке execute self.fetch_command (подкоманда).run_from_argv (self.argv) Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ core \ management \ base.py", строка 283, в файле run_from_argv self.execute (* args, ** cmd_options) Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ core \ management \ base.py", строка 327, в файле executeФайл self.check () "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ core \ management \ base.py", строка 359, в проверке include_deployment_checks = include_deployment_checks,Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ core \ management \ base.py", строка 346, в _run_checks возвращает check.run_checks (** kwargs)Файл "C: \ Source \ Gi"t \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ core \ check \ registry.py ", строка 81, в run_checks new_errors = check (app_configs = app_configs) Файл" C: \ Source \ Git\ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ core \ check \ urls.py ", строка 16, в check_url_config, возвращают check_resolver (resolver), файл" C: \ Source \ Git \ Suisseedu \ resourcecenter2\ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ core \ check \ urls.py ", строка 26, в check_resolver, возвращают check_method () Файл" C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \env \ lib \ site-packages \ django \ urls \ resolvers.py ", строка 254, для проверкишаблон в self.url_patterns: файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ utils \ functions.py", строка 35, в получить res = instance. dict [self.name] = self.func (instance) Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django\ urls \ resolvers.py ", строка 405, в шаблонах url_patterns = getattr (self.urlconf_module," urlpatterns ", self.urlconf_module) Файл" C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \site-packages \ django \ utils \ functions.py ", строка 35, в get res = instance. dict [self.name] = self.func (instance) Файл" C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ urls \ resolvers.py ", строка 398, в urlconf_module, возвращают файл import_module (self.urlconf_name), файл" C: \ Users \ "Tim \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ importlib__init __. Py ", строка 126, в import_module return _bootstrap._gcd_import (имя [уровень:], пакет, уровень) Файл "", строка 994, в файле _gcd_import "", строка 971, в файле _find_and_load "", строка 955, в файле _find_and_load_unlocked "", строка 665,в _load_unlocked
Файл "", строка 678, в файле exec_module "", строка 219, в файле _call_with_frames_removed "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ ResourceCenter \ urls.py", строка 24,в url (r '^ eduuser /', include ("eduuser.urls", namespace = "eduuser")), файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages\ django \ conf \ urls__init __. py ", строка 50, в том числе urlconf_module = import_module (urlconf_module) Файл" C: \ Users \ Tim \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ importlib__init __. py ", строка126, в файле import_module возвращаем _bootstrap._gcd_import (имя [уровень:], пакет, уровень) Файл "", строка 994, в файле _gcd_import "", строка 971, в файле _find_and_load "", строка 955, в файле _find_and_load_unlocked "",строка 665, в _load_разблокирован
Файл "", строка 678, в файле exec_module "", строка 219, в файле _call_with_frames_removed "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ eduuser \ urls.py", строка 2, виз представлений импорта eduuser Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ eduuser \ views.py", строка 7, из импорта из eduuser.forms Файл ForgotEmailForm "C: \ Source \ Git \ Suisseedu \ resourcecenter2\ ResourceCenter \ ResourceCenter \ eduuser \ forms.py ", строка 107, в классе ImportUserForm (forms.Form): Файл" C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ eduuser \ forms.py ", строка 123, в ImportUserForm role_choices = tuple ([(u '', "Auswählen")] + список ([(r.id, str (r)) для r в Role.objects.all ()])) Файл "C: \Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ db \ models \ query.py ", строка 250, в iter self._fetch_all () файле" C ": \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ окр \ Lib \ сайт-packages \ django \ db \ models \ query.py ", строка 1118, в _fetch_all self._result_cache = list (self._iterable_class (self)) Файл" C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env\ lib \ site-packages \ django \ db \ models \ query.py ", строка 53, в iter results = compiler.execute_sql (chunked_fetch = self.chunked_fetch) Файл" C: \ Source \ Git \ "Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ db \ models \ sql \ compiler.py ", строка 886, в файле execute_sql поднять файл original_exception" C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter "\ ResourceCenter \ env \ lib \ site-packages \ django \ db \ models \ sql \ compiler.py ", строка 876, в execute_sqlcursor.execute (sql, params) Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ db \ backends \ utils.py",
строка 80, в исполнении
return super (CursorDebugWrapper, self) .execute (sql, params) Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ db \ backends \ utils.py",
строка 65, в исполнении
return self.cursor.execute (sql, params) Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ db \ utils.py",
линия 94, в выход
six.reraise (dj_exc_type, dj_exc_value, traceback) Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ utils \ six.py",
линия 685, в ререйзе
поднять value.with_traceback (tb) Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ db \ backends \ utils.py",
строка 65, в исполнении
return self.cursor.execute (sql, params) Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ django \ db \ backends \ mysql \ base.py",
строка 101, в исполнении
return self.cursor.execute (query, args) Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ MySQLdb \ cursors.py",
строка 250, в исполнении
self.errorhandler (self, exc, value) Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ MySQLdb \ connections.py",
строка 50, в defaulterrorhandler
поднять errorvalue Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ MySQLdb \ cursors.py",
строка 247, в исполнении
res = self._query (query) Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ MySQLdb \ cursors.py",
строка 412, в _query
rowcount = self._do_query (q) Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ MySQLdb \ cursors.py",
строка 375, в _do_query
db.query (q) Файл "C: \ Source \ Git \ Suisseedu \ resourcecenter2 \ ResourceCenter \ ResourceCenter \ env \ lib \ site-packages \ MySQLdb \ connections.py",
строка 276, в запросе
_mysql.connection.query (self, query) django.db.utils.ProgrammingError: (1146, "Таблица" rc2.eduuser_role "
не существует ")
Код:
from django.db import models
from django.utils.translation import gettext_lazy as _
from settings import base
from eduuser.managers import EduUserManager
from phonenumber_field.modelfields import PhoneNumberField
# ** AUTH USER **
from django.contrib.auth.models import (
AbstractBaseUser,PermissionsMixin
)
# ------------
# ROLE
# ------------
class Role(models.Model):
name = models.CharField(
_("Role Name"),
max_length=100,
unique=True,
)
def __str__(self):
return self.name
# -------------
# EduUser
# -------------
class EduUser(AbstractBaseUser,PermissionsMixin):
objects = EduUserManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
first_name = models.CharField(
_("First Name"),
default="",
blank=False,
max_length=255)
last_name = models.CharField(
_("Last Name"),
default = "",
blank=False,
max_length=255)
eduId = models.CharField(
_("EduId"),
blank=False,
unique=True,
db_index=True,
error_messages={
'unique': _("A user with that eduId already exists."),
},
max_length=255)
age = models.IntegerField(
_("Age"),
blank=True,
null=True,
)
GENDER_CHOICES = (
('N', 'None'),
('M', 'Male'),
('F', 'Female'),
)
gender = models.CharField(
_("Gender"),
max_length=1,
choices=GENDER_CHOICES)
email = models.EmailField(
_("Email"),
max_length=255,
unique=True,
error_messages={
'unique': _("A user with that email address already exists."),
},
)
verify_key = models.IntegerField(blank=True, null=True)
verify_key_expires = models.DateTimeField(blank=True, null=True)
email_verify = models.BooleanField(default=False)
password_forgot_key = models.CharField(
_("Password_Forgot_Key"),
blank=True,
unique=True,
max_length=255)
password_forgot_key_expires = models.DateTimeField(blank=True, null=True)
health_info = models.TextField(
_("Health Informations"),
default="No Special Informations")
special_info = models.TextField(
_("Special Informations"),
default="No Special Informations")
resume_info = models.TextField(
_("Biography"),
default="No Bio set")
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
is_first_steps = models.BooleanField(default=True)
date_of_birth = models.DateField(default="2000-01-01")
school_start_date = models.DateField(default="2000-01-01")
eduuser_read = models.ManyToManyField(
base.AUTH_USER_MODEL,
related_name="eduuser_read_set",
blank=True,
)
eduuser_write = models.ManyToManyField(
base.AUTH_USER_MODEL,
related_name="eduuser_write_set",
blank=True,
)
role = models.ManyToManyField(
"Role",
_("Role"),
blank=False,
db_index=True,
)
address = models.ForeignKey("country.Address",
blank=True,
null=True,
default=None,
)
phone_number = PhoneNumberField(blank=True)
def get_full_name(self):
# The user is identified by their email address
return "" + self.first_name + " " + self.last_name
def get_short_name(self):
# The user is identified by their email address
return self.email
def has_perm(self, perm, obj=None):
"Does the user have a specific permission?"
# Simplest possible answer: Yes, always
return True
def has_module_perms(self, app_label):
"Does the user have permissions to view the app `app_label`?"
# Simplest possible answer: Yes, always
return True
def is_staff(self):
"Is the user a member of staff?"
# Simplest possible answer: All admins are staff
return self.is_admin
def __str__(self):
if self.first_name and self.last_name:
return "" + self.first_name + " " + self.last_name
else:
return "" + self.email
# -------------
# Import Maching Table
# -------------
class ImportMatch(models.Model):
role = models.OneToOneField(
"Role",
blank=False,
db_index=True,
related_name="role_host_set"
)
role_allowed = models.ManyToManyField(
"Role",
blank=False,
db_index=True,
related_name="allowed_role_set"
)
def __str__(self):
return "" + str(self.role) + " Import Allowed Table"
# -------------
# Import Role Mapper
# -------------
class RoleMapper(models.Model):
role = models.OneToOneField(
"Role",
blank=False,
db_index=True,
)
role_map = models.TextField(
_("Trennen mit Komma"),
blank=False,
)
def __str__(self):
return "" + str(self.role) + " Mapper"
Может кто-нибудь помочь мне с этой проблемой?
Версия Python: 3.6.6
Версия Django: 1.11.3
Edit:
role_choices = tuple([(u'', "Auswählen")] + list([(r.id, str(r)) for r in Role.objects.all()]))
role = forms.ChoiceField(widget=forms.Select, choices=role_choices)