Sri*_*aju 35 python django django-models
不知道为什么会出现这个错误.这是我创建的模型 -
from django.db import models
from django.contrib.auth.models import User
class Shows(models.Model):
showid= models.CharField(max_length=10, unique=True, db_index=True)
name = models.CharField(max_length=256, db_index=True)
aka = models.CharField(max_length=256, db_index=True)
score = models.FloatField()
class UserShow(models.Model):
user = models.ForeignKey(User)
show = models.ForeignKey(Shows)
Run Code Online (Sandbox Code Playgroud)
以下是我访问这些模型的视图 -
from django.http import HttpResponse
from django.template import Context
from django.template.loader import get_template
from django.http import HttpResponse, Http404
from django.contrib.auth.models import User
def user_page(request, username):
try:
user = User.objects.get(username=username)
except:
raise Http404('Requested user not found.')
shows = user.usershow_set.all()
template = get_template('user_page.html')
variables = Context({
'username': username,
'shows' : shows})
output = template.render(variables)
return HttpResponse(output)
Run Code Online (Sandbox Code Playgroud)
此时我收到错误 -
OperationalError:(1054,"字段列表'中的未知列'appname_usershow.show_id'")
如您所见,我的模型中甚至不存在此列?为什么这个错误?
通常情况下,当我尝试访问数据库中不存在的字段时,我会得到这个.
检查数据库中是否存在该字段.如果您更改模型并执行syncdb,它将不会更新数据库,我不确定是否是这种情况.
另一方面,Django提供了使用get_object_or_404替换代码中try/except块的快捷方式.(在django.shortcuts中可用)
try:
user = User.objects.get(username=username)
except:
raise Http404('Requested user not found.')
Run Code Online (Sandbox Code Playgroud)
可以改为:
user = get_object_or_404(User, username=username)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
69425 次 |
最近记录: |