Django 为什么即使在pythonanywhere成功迁移之后,relatedObjectsNoTexist仍然会出现?
我知道有人问过类似的问题,但在我的例子中,在部署到之后,我得到了RelatedObjectsDoesNotexist “RelatedObjectsDoesNotExist:用户没有EIS文件。” 然而,同样的代码在本地机器上也可以正常工作 Model.pyDjango 为什么即使在pythonanywhere成功迁移之后,relatedObjectsNoTexist仍然会出现?,django,django-models,pythonanywhere,Django,Django Models,Pythonanywhere,我知道有人问过类似的问题,但在我的例子中,在部署到之后,我得到了RelatedObjectsDoesNotexist “RelatedObjectsDoesNotExist:用户没有EIS文件。” 然而,同样的代码在本地机器上也可以正常工作 Model.py from __future__ import unicode_literals from django.db import models from django.contrib.auth.models import User c
from __future__ import unicode_literals
from django.db import models
from django.contrib.auth.models import User
class gwDashboard(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
htmlname = models.CharField(max_length=100)
def __str__(self): # __unicode__ on Python 2
return self.htmlname
class userInformation(models.Model):
user = models.ForeignKey(User)
DbName = models.CharField(max_length=200)
DbTable = models.CharField(max_length=200)
class Employee(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
department = models.CharField(max_length=100)
class eisfiles(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
htmlname = models.CharField(max_length=100)
meterId = models.CharField(max_length=100)
esiid = models.CharField(max_length=100)
metermultiplier = models.CharField(max_length=100)
DbName = models.CharField(max_length=100,default='800WILCREST')
DbTable = models.CharField(max_length=100)
def __str__(self):
return self.htmlname
def __str__(self):
return self.DbName
class Member(models.Model):
ID = models.AutoField(primary_key=True)
FIRST_NAME = models.CharField('First name', max_length=50)
LAST_NAME = models.CharField('Last name', max_length=50)
# Using multi table inheritance - automaticly creates one to one field
class MemberDetail(Member):
DATE_OF_BIRTH = models.DateField('Date of birth')
EMAIL = models.EmailField('E-mail')
PHONE = models.CharField('Phone', max_length=15)
视图.py
def home(request):
userName = request.user
u = User.objects.get(username=userName);
DbName=u.eisfiles //THIS LINE OF CODE THROWS ERROR
try:
DbName=u.eisfiles //THIS LINE OF CODE THROWS ERROR
DbName=u.eisfiles.DbName
direct=''
return render_to_response(
'registration/result.html',
{ 'kWhHeatMap': kWhHeatMap, 'temHeatMap':temHeatMap,"histKwhChart":histKwhChart,'officeBuilding':officeBuilding},
)
except User.eisfiles.RelatedObjectDoesNotExist:
pass
return render_to_response(
'registration/result.html',
{ 'kWhHeatMap': "", 'temHeatMap':"","histKwhChart":"",'officeBuilding':""},
)
# except User.AttributeError:
# return HttpResponse('something went wrong!! try again')
finally:
pass
您可能需要检查您试图检索的用户是否确实存在
userName = request.user # ??? This is the user object not the username
u = User.objects.get(username=userName)
您的查询似乎有问题。请尝试以下操作:
user = request.user
u = User.objects.get(id=user.id)
DbName = u.eisfiles.DbName
您可能需要检查您试图检索的用户是否确实存在
userName = request.user # ??? This is the user object not the username
u = User.objects.get(username=userName)
您的查询似乎有问题。请尝试以下操作:
user = request.user
u = User.objects.get(id=user.id)
DbName = u.eisfiles.DbName
因此,该用户没有相关的eisfiles对象。您的问题是什么?@DanielRoseman我已经正确地完成了迁移,但是为什么u.eisfiles代码行会抛出错误,因为该特定用户没有为相关对象定义数据。@DanielRoseman告诉我如何为该特定用户添加数据,当我在本地运行时,我只是执行了迁移文件。是否要我发布迁移文件?如果该用户没有相关的eisfiles对象。您的问题是什么?@DanielRoseman我已经正确地完成了迁移,但是为什么u.eisfiles代码行会抛出错误,因为该特定用户没有为相关对象定义数据。@DanielRoseman告诉我如何为该特定用户添加数据,当我在本地运行时,我只是执行了迁移文件。要我在eisfiles表中发布迁移文件吗?没有数据,不知道为什么?我已在迁移文件中正确链接,但您从未创建任何文件。该表还将如何填充告诉我如何创建它?使用
管理器的创建方法:eisfiles.objects.create(user=user,…)
。根据需要传递其他参数。在何处执行此操作完全取决于您。在eisfiles表中没有数据,不知道为什么?我已在迁移文件中正确链接,但您从未创建任何文件。该表还将如何填充告诉我如何创建它?使用管理器的创建方法:eisfiles.objects.create(user=user,…)
。根据需要传递其他参数。在哪里执行此操作完全取决于您。