Django “不断地出错”;没有这样的表格”;不管我做什么

Django “不断地出错”;没有这样的表格”;不管我做什么,django,sqlite,django-models,model,Django,Sqlite,Django Models,Model,我对django和数据库管理也是相当陌生的,因此我肯定不了解它们的一些重要方面 几天来,我一直在尝试用各种方法解决这个错误。(这是由于在现有模型中声明了一个称为习惯的新字段),我尝试了: 使用reset_db(django扩展)重置数据库 用本地django flush命令刷新它(现在我明白了 (这是一种错误的方法) 通过创建在另一个虚拟环境中重新创建整个应用程序 新数据库的开发 假装迁移——假装(基本上是出于绝望) 使用sql browser手动更改数据库中的字段 手动删除sqlite数据库

我对django和数据库管理也是相当陌生的,因此我肯定不了解它们的一些重要方面

几天来,我一直在尝试用各种方法解决这个错误。(这是由于在现有模型中声明了一个称为习惯的新字段),我尝试了:

  • 使用reset_db(django扩展)重置数据库
  • 用本地django flush命令刷新它(现在我明白了 (这是一种错误的方法)
  • 通过创建在另一个虚拟环境中重新创建整个应用程序 新数据库的开发
  • 假装迁移——假装(基本上是出于绝望)
  • 使用sql browser手动更改数据库中的字段
  • 手动删除sqlite数据库并进行迁移
以下是我的模型:

应用程序URL:

完整错误消息:

(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()])