django throws an error when there is no row in the table! django.db.utils.OperationalError: no such table: home_general
django throws an error when there is no row in the table! django.db.utils.OperationalError: no such table: home_general
主要是在 views.py 查询集上创建问题!我已经尝试过使用包含一些行的现有数据库......没有错!但是,如果我从管理面板中删除所有行,则会显示此错误 django.db.utils.OperationalError: no such table: home_general
如果 table 为空,这些查询会出错
general = General.objects.first()
social = Social_URI.objects.all()
seo = SEO.objects.first()
project_data = Project.objects.all()
如果我将它们绑定在 try-except 中,那么就不会发生像 django.db.utils.OperationalError 这样的错误:没有这样的 table:
但由于空行,我再次遇到模板错误!
from django.shortcuts import render, redirect
from django.views.decorators.http import require_http_methods
from .models import Event, Comment
from home.models import General, Social_URI, SEO
from projects.models import Project
try:
general = General.objects.first()
except:
general = None
try:
social = Social_URI.objects.all()
except:
social = None
try:
seo = SEO.objects.first()
except:
seo = None
try:
event_data = Event.objects.all()
except:
event_data = None
try:
project_data = Project.objects.all()
except:
project_data = None
def event(request):
try:
data = {
"logo": general.logo,
"favicon": general.favicon,
"title": general.title,
"top_phone": general.top_phone,
"top_email": general.top_email,
"about_image": general.about_image,
"about_title": general.about_title,
"about_text": general.about_text,
"footer_logo": general.footer_logo,
"footer_text": general.footer_text,
"footer_copyright": general.footer_copyright,
"footer_address": general.footer_address,
"social_url": social,
"ga_id": seo.ga_id,
"seo_author": seo.author,
"seo_description": seo.description,
"seo_keywords": seo.keywords,
"events_data": event_data,
"projects_data": project_data
}
except:
data = None
return render(request, "events/event.html", data)
def event_view(request, id):
event_view_data = Event.objects.get(pk=id)
comments = Comment.objects.filter(event=id)
data = {
"logo": general.logo,
"favicon": general.favicon,
"title": general.title,
"top_phone": general.top_phone,
"top_email": general.top_email,
"about_image": general.about_image,
"about_title": general.about_title,
"about_text": general.about_text,
"footer_logo": general.footer_logo,
"footer_text": general.footer_text,
"footer_copyright": general.footer_copyright,
"footer_address": general.footer_address,
"social_url": social,
"ga_id": seo.ga_id,
"seo_author": seo.author,
"seo_description": seo.description,
"seo_keywords": seo.keywords,
"event_id": event_view_data.id,
"event_title": event_view_data.title,
"event_thumb": event_view_data.thumb.url,
"event_desc": event_view_data.description,
"event_amount": event_view_data.amount,
"event_location": event_view_data.location,
"event_calender": event_view_data.calender,
"comments": comments,
"projects_data": project_data
}
return render(request, "events/event_view.html", data)
@require_http_methods(["POST"])
def comment(request):
event_id = request.POST.get("event_id")
username = request.POST.get("username")
email = request.POST.get("email")
message = request.POST.get("message")
event = Event.objects.get(pk=event_id)
comment = Comment(event=event, username=username, email=email, message=message)
comment.save()
return redirect("event_view", id=event_id)
Exception Value:
Reverse for 'event_view' with arguments '('',)' not found. 1 pattern(s) tried: ['event_view/(?P<id>[0-9]+)\Z']
美好的一天!
通常,当您在 models.py
中创建模型时会发生 django.db.utils.OperationalError: no such table
,但不要 运行 迁移到新创建的数据库,更多信息请参见此处:Django: OperationalError No Such Table
至于 Reverse for 'event_view' with arguments '('',)' not found. 1 pattern(s) tried: ['event_view/(?P<id>[0-9]+)\Z']
:它表示您正在尝试打开 url event_view/
而没有 id
。它必须类似于 event_view/1/
,更多内容在这里:Reverse for 'view_item' with arguments '('',)' and keyword arguments '{}' not found
主要是在 views.py 查询集上创建问题!我已经尝试过使用包含一些行的现有数据库......没有错!但是,如果我从管理面板中删除所有行,则会显示此错误 django.db.utils.OperationalError: no such table: home_general
如果 table 为空,这些查询会出错
general = General.objects.first()
social = Social_URI.objects.all()
seo = SEO.objects.first()
project_data = Project.objects.all()
如果我将它们绑定在 try-except 中,那么就不会发生像 django.db.utils.OperationalError 这样的错误:没有这样的 table: 但由于空行,我再次遇到模板错误!
from django.shortcuts import render, redirect
from django.views.decorators.http import require_http_methods
from .models import Event, Comment
from home.models import General, Social_URI, SEO
from projects.models import Project
try:
general = General.objects.first()
except:
general = None
try:
social = Social_URI.objects.all()
except:
social = None
try:
seo = SEO.objects.first()
except:
seo = None
try:
event_data = Event.objects.all()
except:
event_data = None
try:
project_data = Project.objects.all()
except:
project_data = None
def event(request):
try:
data = {
"logo": general.logo,
"favicon": general.favicon,
"title": general.title,
"top_phone": general.top_phone,
"top_email": general.top_email,
"about_image": general.about_image,
"about_title": general.about_title,
"about_text": general.about_text,
"footer_logo": general.footer_logo,
"footer_text": general.footer_text,
"footer_copyright": general.footer_copyright,
"footer_address": general.footer_address,
"social_url": social,
"ga_id": seo.ga_id,
"seo_author": seo.author,
"seo_description": seo.description,
"seo_keywords": seo.keywords,
"events_data": event_data,
"projects_data": project_data
}
except:
data = None
return render(request, "events/event.html", data)
def event_view(request, id):
event_view_data = Event.objects.get(pk=id)
comments = Comment.objects.filter(event=id)
data = {
"logo": general.logo,
"favicon": general.favicon,
"title": general.title,
"top_phone": general.top_phone,
"top_email": general.top_email,
"about_image": general.about_image,
"about_title": general.about_title,
"about_text": general.about_text,
"footer_logo": general.footer_logo,
"footer_text": general.footer_text,
"footer_copyright": general.footer_copyright,
"footer_address": general.footer_address,
"social_url": social,
"ga_id": seo.ga_id,
"seo_author": seo.author,
"seo_description": seo.description,
"seo_keywords": seo.keywords,
"event_id": event_view_data.id,
"event_title": event_view_data.title,
"event_thumb": event_view_data.thumb.url,
"event_desc": event_view_data.description,
"event_amount": event_view_data.amount,
"event_location": event_view_data.location,
"event_calender": event_view_data.calender,
"comments": comments,
"projects_data": project_data
}
return render(request, "events/event_view.html", data)
@require_http_methods(["POST"])
def comment(request):
event_id = request.POST.get("event_id")
username = request.POST.get("username")
email = request.POST.get("email")
message = request.POST.get("message")
event = Event.objects.get(pk=event_id)
comment = Comment(event=event, username=username, email=email, message=message)
comment.save()
return redirect("event_view", id=event_id)
Exception Value:
Reverse for 'event_view' with arguments '('',)' not found. 1 pattern(s) tried: ['event_view/(?P<id>[0-9]+)\Z']
美好的一天!
通常,当您在 models.py
中创建模型时会发生 django.db.utils.OperationalError: no such table
,但不要 运行 迁移到新创建的数据库,更多信息请参见此处:Django: OperationalError No Such Table
至于 Reverse for 'event_view' with arguments '('',)' not found. 1 pattern(s) tried: ['event_view/(?P<id>[0-9]+)\Z']
:它表示您正在尝试打开 url event_view/
而没有 id
。它必须类似于 event_view/1/
,更多内容在这里:Reverse for 'view_item' with arguments '('',)' and keyword arguments '{}' not found