django - django.db.utils.OperationalError:没有这样的表:characters_race
问题描述
我尝试运行python manage.py migrate
,甚至python manage.py makemigrations characters
仍然出现错误,我尝试搜索该表的所有文件甚至类似的文件,但我什么也没找到,我什至尝试删除“db.sqlite3”和“ ptcache ”并尝试再次行,仍然是同样的错误。这是回溯:
File "manage.py", line 22, in <module>
main()
File "manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line
utility.execute()
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\core\management\__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\core\management\base.py", line 330, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\core\management\base.py", line 371, in execute
output = self.handle(*args, **options)
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\core\management\base.py", line 85, in wrapped
res = handle_func(*args, **kwargs)
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\core\management\commands\migrate.py", line 75, in handle
self.check(databases=[database])
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\core\management\base.py", line 392, in check
all_issues = checks.run_checks(
errors.extend(model.check(**kwargs))
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\base.py", line 1264, in check
*cls._check_fields(**kwargs),
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\base.py", line 1343, in _check_fields
errors.extend(field.check(**kwargs))
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\fields\related.py", line 836, in check
*super().check(**kwargs),
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\fields\related.py", line 482, in check
*super().check(**kwargs),
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\fields\related.py", line 100, in check
*super().check(**kwargs),
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\fields\__init__.py", line 200, in check
*self._check_choices(),
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\fields\__init__.py", line 245, in _check_choices
if not self.choices:
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\query.py", line 291, in __bool__
self._fetch_all()
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\query.py", line 1308, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\query.py", line 53, in __iter__
results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\models\sql\compiler.py", line 1156, in execute_sql
cursor.execute(sql, params)
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\backends\utils.py", line 98, in execute
return super().execute(sql, params)
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\backends\utils.py", line 66, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\backends\utils.py", line 75, in _execute_with_wrappers
return executor(sql, params, many, context)
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\Users\User\anaconda3\envs\MyDjangoEnv\lib\site-packages\django\db\backends\sqlite3\base.py", line 413, in execute
return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such table: characters_race
这是models.py:
class Race(models.Model):
name = models.CharField(max_length=200)
attack = models.IntegerField()
deffence = models.IntegerField()
intelligence = models.IntegerField()
agility = models.IntegerField()
wisdom = models.IntegerField()
charisma = models.IntegerField()
def publish(self):
self.save()
def __str__(self):
return self.name
class Role(models.Model):
name = models.CharField(max_length=200)
attack = models.IntegerField()
deffence = models.IntegerField()
intelligence = models.IntegerField()
agility = models.IntegerField()
wisdom = models.IntegerField()
charisma = models.IntegerField()
def publish(self):
self.save()
def __str__(self):
return self.name
class Character(models.Model):
raceList = Race.objects.all()
roleList = Role.objects.all()
user=models.ForeignKey(User,related_name='characters',on_delete=models.CASCADE)
name=models.CharField(max_length=200)
description=models.TextField()
level=models.PositiveIntegerField(default=1)
race = models.ForeignKey(Race,choices = raceList,on_delete=models.CASCADE)
role = models.ForeignKey(Role,choices = roleList,on_delete=models.CASCADE)
@property
def attack(self):
return self.race.attack+self.role.attack
@property
def deffence(self):
return self.race.deffence+self.role.deffence
@property
def intelligence(self):
return self.race.intelligence+self.role.intelligence
@property
def agility(self):
return self.race.agility+self.role.agility
@property
def wisdom(self):
return self.race.wisdom+self.role.wisdom
@property
def charisma(self):
return self.race.charisma+self.role.charisma
@property
def maxHp(self):
return (self.deffence/2)+(self.level*5)+20
@property
def maxMana(self):
return (intelligence*0.75)+(level*5)+15
def publish(self):
self.save()
def get_absolute_url(self):
return reverse("characters:character_detail",kwargs={'pk':self.pk})
def __str__(self):
return self.name
这是 Views.py:
class CreateCharacterView(LoginRequiredMixin,CreateView):
login_url = '/login/'
redirect_field_name = 'characters/character_detail.html'
form_class = CharacterForm
model = Character
class CreateRaceView(LoginRequiredMixin,CreateView):
login_url = '/login/'
redirect_field_name = 'characters/race_detail.html'
form_class = RaceForm
model = Race
class CreateRoleView(LoginRequiredMixin,CreateView):
login_url = '/login/'
redirect_field_name = 'characters/roles_detail.html'
form_class = RolesForm
model = Role
class CharacterListView(LoginRequiredMixin,ListView):
login_url = '/login/'
redirect_field_name = 'characters/characters_list.html'
model = Character
def get_queryset(self):
return Post.objects.order_by('name')
class RacesListView(ListView):
model = Race
def get_queryset(self):
return Race.objects.order_by('name')
class RolesListView(ListView):
model = Role
def get_queryset(self):
return Role.objects.order_by('name')
class CharacterDetailView(DetailView):
model = Character
class RacesDetailView(DetailView):
model = Race
class RoleDetailView(DetailView):
model = Role
class CharacterUpdateView(LoginRequiredMixin,UpdateView):
login_url = '/login/'
redirect_field_name = 'characters/character_detail.html'
form_class = CharacterForm
model = Character
class RaceUpdateView(LoginRequiredMixin,UpdateView):
login_url = '/login/'
redirect_field_name = 'characters/race_detail.html'
form_class = RaceForm
model = Race
class RoleUpdateView(LoginRequiredMixin,UpdateView):
login_url = '/login/'
redirect_field_name = 'characters/role_detail.html'
form_class = RolesForm
model = Role
class CharacterDeleteView(LoginRequiredMixin,DeleteView):
model = Character
success_url = reverse_lazy('characters:characters_list')
class RaceDeleteView(LoginRequiredMixin,DeleteView):
model = Race
success_url = reverse_lazy('characters:races_list')
class RoleDeleteView(LoginRequiredMixin,DeleteView):
model = Role
success_url = reverse_lazy('characters:roles_list')
#######################################
## Functions that require a pk match ##
#######################################
@login_required
def character_publish(request, pk):
character = get_object_or_404(Character, pk=pk)
character.publish()
return redirect('characters:character_detail', pk=pk)
@login_required
def race_publish(request, pk):
race = get_object_or_404(Race, pk=pk)
race.publish()
return redirect('characters:race_detail', pk=pk)
@login_required
def role_publish(request, pk):
role = get_object_or_404(Role, pk=pk)
role.publish()
return redirect('characters:role_detail', pk=pk)
如您所见,我没有任何看起来像它搜索的表的东西,我认为我错过了一些东西,但我不知道是什么,我尝试了回溯但没有运气,因为我看不到任何回溯到我的代码
解决方案
推荐阅读
- javascript - 使用 url 和查询参数进行 Ajax 调用
- graphql - 使用 Api 平台的 GraphQL 查询解析器未按预期过滤嵌入式资源
- javascript - 使用 React 在 onClick 处执行两个函数
- r - R - 将循环类的对象转换回数字
- c# - 将接口实现分配给其他模块中的类
- apache-spark - 当 Kafka 队列中的消息分布不均时,在 spark DStream 批次中获取最大消息
- laravel - 在 Laravel 应用程序中登录时停止更新用户表的 update_by 字段
- gitlab - 你如何检查我的自托管实例上是否配置了 GitLab `incoming_email`?
- maven - Gradle 7.1没有将maven工件发布到archiva
- latex - 如何在乳胶中获得符号`(英式键盘上#1左侧的那个)?