Django “不断地出错”;没有这样的表格”;不管我做什么
我对django和数据库管理也是相当陌生的,因此我肯定不了解它们的一些重要方面 几天来,我一直在尝试用各种方法解决这个错误。(这是由于在现有模型中声明了一个称为习惯的新字段),我尝试了:Django “不断地出错”;没有这样的表格”;不管我做什么,django,sqlite,django-models,model,Django,Sqlite,Django Models,Model,我对django和数据库管理也是相当陌生的,因此我肯定不了解它们的一些重要方面 几天来,我一直在尝试用各种方法解决这个错误。(这是由于在现有模型中声明了一个称为习惯的新字段),我尝试了: 使用reset_db(django扩展)重置数据库 用本地django flush命令刷新它(现在我明白了 (这是一种错误的方法) 通过创建在另一个虚拟环境中重新创建整个应用程序 新数据库的开发 假装迁移——假装(基本上是出于绝望) 使用sql browser手动更改数据库中的字段 手动删除sqlite数据库
- 使用reset_db(django扩展)重置数据库
- 用本地django flush命令刷新它(现在我明白了 (这是一种错误的方法)
- 通过创建在另一个虚拟环境中重新创建整个应用程序 新数据库的开发
- 假装迁移——假装(基本上是出于绝望)
- 使用sql browser手动更改数据库中的字段
- 手动删除sqlite数据库并进行迁移
(WebApp-G_WmOMr9)D:\CodingPython\New_Folder_For_Great_和_strucruised_Work\WebApp>python manage.py makemigrations
回溯(最近一次呼叫最后一次):
文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\db\backends\utils.py”,第84行,在执行中
返回self.cursor.execute(sql,params)
文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\db\backends\sqlite3\base.py”,第413行,在execute中
返回Database.Cursor.execute(self、query、params)
sqlite3.OPERATIONERROR:没有这样的表:Tracker\u
上述异常是以下异常的直接原因:
回溯(最近一次呼叫最后一次):
文件“manage.py”,第22行,在
main()
文件“manage.py”,第18行,主
从命令行(sys.argv)执行命令
文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\core\management\\uuuuuuuuu init\uuuuuuu.py”,第401行,从命令行执行
utility.execute()
文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\core\management\\uuuuuuuu init\uuuuuuu.py”,第395行,执行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\core\management\base.py”,第330行,从\u argv运行
self.execute(*args,**cmd_选项)
文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\core\management\base.py”,第368行,执行
self.check()
检查文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\core\management\base.py”,第392行
所有问题=检查。运行检查(
运行检查中的文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\core\checks\registry.py”,第70行
新建错误=检查(应用程序配置=应用程序配置,数据库=数据库)
文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\core\checks\url.py”,第13行,在check\u url\u config中
返回检查\u分解器(分解器)
文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\core\checks\url.py”,第23行,在check\u解析器中
返回检查方法()
检查文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\url\resolvers.py”第408行
对于self.url_模式中的模式:
文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\utils\functional.py”,第48行,在__
res=instance.\uuuu dict\uuuu[self.name]=self.func(实例)
文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\url\resolvers.py”,第589行,url\u模式
patterns=getattr(self.urlconf_模块,“urlpatterns”,self.urlconf_模块)
文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\utils\functional.py”,第48行,在__
res=instance.\uuuu dict\uuuu[self.name]=self.func(实例)
文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\url\resolvers.py”,第582行,在urlconf\u模块中
返回导入_模块(self.urlconf_名称)
文件“C:\Users\User\AppData\Local\Programs\Python38-32\lib\importlib\\uuuuuu init\uuuuuu.py”,第127行,在导入模块中
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第1014行,在\u gcd\u导入中
文件“”,第991行,在“查找”和“加载”中
文件“”,第975行,在“查找”和“加载”中解锁
文件“”,第671行,在\u加载\u解锁
exec_模块中第783行的文件“”
文件“”,第219行,在“调用”中,删除了“帧”
文件“D:\CodingPython\New\u Folder\u For\u Great\u和\u Strucrurised\u Work\WebApp\HabitTracker\url.py”,第21行,在
路径(“”,include('Tracker.url'),
文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\url\conf.py”,第34行,include中
urlconf_模块=导入_模块(urlconf_模块)
文件“C:\Users\User\AppData\Local\Programs\Python38-32\lib\importlib\\uuuuuu init\uuuuuu.py”,第127行,在导入模块中
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第1014行,在\u gcd\u导入中
文件“”,第991行,在“查找”和“加载”中
文件“”,第975行,在“查找”和“加载”中解锁
文件“”,第671行,在\u加载\u解锁
exec_模块中第783行的文件“”
文件“”,第219行,在“调用”中,删除了“帧”
文件“D:\CodingPython\New\u Folder\u For\u Great\u和\u Strucrurised\u Work\WebApp\Tracker\url.py”,第3行,在
从。导入视图
文件“D:\CodingPython\New\u Folder\u For\u Great\u和\u Strucrurised\u Work\WebApp\Tracker\views.py”,第12行,在
从.forms导入HabitForm、EditHabitForm
文件“D:\CodingPython\New\u Folder\u For\u Great\u和\u Strucrurised\u Work\WebApp\Tracker\forms.py”,第8行,在
习惯_name=zip([Habity.name代表模型中的习惯。习惯。对象。全部()],[Habity.name代表模型中的习惯。习惯。对象。全部()]))
文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\db\models\query.py”,第287行,在iter中__
self._fetch_all()
文件“C:\Users\User\.virtualenvs\WebApp-G\u WmOMr9\lib\site packages\django\db\models\query.py”,第1308行,在“fetch\u all”中
self.\u结果\u缓存=列表(self.\u iterab)
from django.db import models
from django.utils import timezone
from datetime import timedelta
import datetime
# Create your models here.
class Day(models.Model): # Creating table for this model didn't cause any trouble
date = models.DateField(auto_now_add=True)
def __str__(self):
return str(self.date)
class Habit(models.Model):
name = models.CharField(max_length=200)
targ_init_time = models.TimeField(auto_created=False, auto_now_add=False, default=datetime.time())
targ_term_time = models.TimeField(auto_created=False, auto_now_add=False, default=datetime.time())
true_init_time = models.TimeField(auto_created=False, auto_now_add=False, blank=True, default=datetime.time())
true_term_time = models.TimeField(auto_created=False, auto_now_add=False, blank=True, default=datetime.time())
is_completed = models.BooleanField(default=False)
day = models.ForeignKey(Day, on_delete=models.CASCADE, related_name='habits') # --That New Field I've added--
def find_duration(self):
total_targ_time = timedelta(hours=self.targ_term_time.hour, minutes=self.targ_term_time.minute) - timedelta(hours=self.targ_init_time.hour, minutes=self.targ_init_time.minute)
total_true_time = timedelta(hours=self.true_term_time.hour, minutes=self.true_term_time.minute) - timedelta(hours=self.true_init_time.hour, minutes=self.true_init_time.minute)
return [total_true_time, total_targ_time]
def format_time(self):
time = self.find_duration()
true = float(".".join(str(time[0]).split(":"))[0:4])
targ = float(".".join(str(time[1]).split(":"))[0:4])
if true < 1:
true = str(int(true * 100)) + ' mins'
else:
true = str(true) + ' hours'
if targ < 1:
targ = str(int(targ * 100)) + ' mins'
else:
targ = str(targ) + ' hours'
return [true, targ]
def find_productivity(self):
total_both_time = self.find_duration()
try:
productivity = int(total_both_time[0] / total_both_time[1] * 100)
except ZeroDivisionError:
productivity=0
return productivity
def __str__(self):
return self.name
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from django.urls import reverse
from django.template import loader
from datetime import timedelta, time
from .models import Habit
from .forms import HabitForm, EditHabitForm
# Create your views here.
def dayViewHabitIndex(request):
all_habits = Habit.objects.all()
form = HabitForm()
template = loader.get_template("Tracker/one_day_habits.html")
productivity_list = [habit.find_productivity() for habit in all_habits]
try:
median_productivity = int(sum(productivity_list) / len(productivity_list))
except ZeroDivisionError:
median_productivity = 0
context = {'habits_list':all_habits, 'median_productivity':median_productivity, 'form':form}
return HttpResponse(template.render(context, request))
def addHabit(request):
new_habit = HabitForm(request.POST)
if new_habit.is_valid():
new_habit.save()
return HttpResponseRedirect(reverse('Tracker:index'))
def editHabitsTime(request, habit_id):
certain_habit = Habit.objects.get(id=habit_id)
template = loader.get_template('Tracker/editHabitsTime.html')
form = EditHabitForm()
context = {'certain_habit':certain_habit, 'form':form}
return HttpResponse(template.render(context, request))
def editSuccess(request, habit_id, template='Tracker/editHabitsTime.html'):
changes = EditHabitForm(request.POST, instance=Habit.objects.get(id=habit_id))
if changes.is_valid():
changes.save()
return HttpResponseRedirect(reverse('Tracker:index'))
else:
return render(request, template, {'form':form, 'warning':'Something Went Wrong'})
from django.urls import path
from . import views
app_name = 'Tracker'
urlpatterns = [
path('', views.dayViewHabitIndex, name='index'),
path('createHabit/', views.addHabit, name='addHabit'),
path('<int:habit_id>/edit/', views.editHabitsTime, name='editHabit'),
path('<int:habit_id>/success/>', views.editSuccess, name='saveChanges'),
]
from django.forms import ModelForm
from django.utils.translation import gettext_lazy as _
from django.forms.fields import DateField
from django import forms
from . import models
HABIT_NAMES = zip([habit.name for habit in models.Habit.objects.all()], [habit.name for habit in models.Habit.objects.all()])
class HabitForm(ModelForm):
class Meta:
model = models.Habit
#widgets = {'name': forms.Select(choices=HABIT_NAMES)}
fields = '__all__'
labels = {'name': _(''), 'targ_init_time':_(''), 'targ_term_time':_(''), 'true_init_time':_(''), 'true_term_time':_(''), 'is_completed':_('') }
class EditHabitForm(ModelForm):
class Meta:
model = models.Habit
exclude = ('name', 'targ_init_time', 'targ_term_time', )
(WebApp-G_WmOMr9) D:\CodingPython\New_Folder_For_Great_And_Strucrurised_Work\WebApp>python manage.py makemigrations
Traceback (most recent call last):
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\db\backends\sqlite3\base.py", line 413, in execute
return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: no such table: Tracker_habit
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
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\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line
utility.execute()
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\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\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\core\management\base.py", line 330, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\core\management\base.py", line 368, in execute
self.check()
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\core\management\base.py", line 392, in check
all_issues = checks.run_checks(
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\core\checks\registry.py", line 70, in run_checks
new_errors = check(app_configs=app_configs, databases=databases)
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\core\checks\urls.py", line 13, in check_url_config
return check_resolver(resolver)
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\core\checks\urls.py", line 23, in check_resolver
return check_method()
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\urls\resolvers.py", line 408, in check
for pattern in self.url_patterns:
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\utils\functional.py", line 48, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\urls\resolvers.py", line 589, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\utils\functional.py", line 48, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\urls\resolvers.py", line 582, in urlconf_module
return import_module(self.urlconf_name)
File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "D:\CodingPython\New_Folder_For_Great_And_Strucrurised_Work\WebApp\HabitTracker\urls.py", line 21, in <module>
path('', include('Tracker.urls')),
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\urls\conf.py", line 34, in include
urlconf_module = import_module(urlconf_module)
File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "D:\CodingPython\New_Folder_For_Great_And_Strucrurised_Work\WebApp\Tracker\urls.py", line 3, in <module>
from . import views
File "D:\CodingPython\New_Folder_For_Great_And_Strucrurised_Work\WebApp\Tracker\views.py", line 12, in <module>
from .forms import HabitForm, EditHabitForm
File "D:\CodingPython\New_Folder_For_Great_And_Strucrurised_Work\WebApp\Tracker\forms.py", line 8, in <module>
HABIT_NAMES = zip([habit.name for habit in models.Habit.objects.all()], [habit.name for habit in models.Habit.objects.all()])
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\db\models\query.py", line 287, in __iter__
self._fetch_all()
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\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\.virtualenvs\WebApp-G_WmOMr9\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\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\db\models\sql\compiler.py", line 1156, in execute_sql
cursor.execute(sql, params)
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\db\backends\utils.py", line 98, in execute
return super().execute(sql, params)
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\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\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\db\backends\utils.py", line 75, in _execute_with_wrappers
return executor(sql, params, many, context)
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\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\.virtualenvs\WebApp-G_WmOMr9\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\Users\User\.virtualenvs\WebApp-G_WmOMr9\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: Tracker_habit
python manage.py migrate --run-syncdb
HABIT_NAMES = zip([habit.name for habit in models.Habit.objects.all()], [habit.name for habit in models.Habit.objects.all()])