我一直在收到has no attribute DoesNotExist错误.
有什么想法吗?
到目前为止我试过:
try:
current_report = Report.objects.get(account_profile=current_profile)
except Report.DoesNotExist:
print("report doesn't exist")
current_report=None
Run Code Online (Sandbox Code Playgroud)
我的调试显示type object 'Report' has no attribute 'DoesNotExist'
在current_report(etc)行:
我也尝试过:
from django.core.exceptions import ObjectDoesNotExist
...
except Report.ObjectDoesNotExist:
Run Code Online (Sandbox Code Playgroud)
和
try:
Report.objects.get(account_profile=current_profile)
except Report.DoesNotExist:
print("report doesn't exist")
current_report=None
Run Code Online (Sandbox Code Playgroud)
和
try:
Report.objects.get(account_profile=current_profile)
except ObjectDoesNotExist:
print("report doesn't exist")
current_report=None
Run Code Online (Sandbox Code Playgroud)
为什么类型对象'X'没有属性'DoesNotExist'?我正在使用django.
在我的Models.py中,我有:
class Report(models.Model):
account_profile = models.ForeignKey(Profile)
total_visitors = models.CharField(max_length=200, blank=True, null=True)
last_week_visitors = models.CharField(max_length=200, blank=True, null=True)
new_visitors_this_wk = models.CharField(max_length=200, blank=True, null=True)
new_visitors_last_wk = models.CharField(max_length=200, blank=True, null=True)
bounce_rate = models.CharField(max_length=200, blank=True, null=True)
last_week_bounce_rate = models.CharField(max_length=200, blank=True, null=True)
percent_new_referrals = models.CharField(max_length=100, blank=True, null=True)
last_week_new_referrals = models.CharField(max_length=100, blank=True, null=True)
this_week_pg_load_time = models.CharField(max_length=100, blank=True, null=True)
last_week_pg_load_time = models.CharField(max_length=100, blank=True, null=True)
date_created = models.DateTimeField(default=datetime.now, blank=True)
week_number = models.CharField(max_length=10, blank=True, null=True)
#HTML table for browsers with avg session durations less than 10 seconds
sessions_vs_browser = models.TextField(blank=True, null=True)
sessions_vs_country = models.TextField(blank=True, null=True)
sessions_vs_device = models.TextField(blank=True, null=True)
total_sessions = models.CharField(max_length=100, blank=True, null=True)
keywords = models.ManyToManyField(Keyword)
referrals = models.ManyToManyField(Referral)
pages_speeds = models.ManyToManyField(PageSpeed)
bounces = models.ManyToManyField(BouncePage)
Run Code Online (Sandbox Code Playgroud)
我也面临这种行为,问题是视图名称和模型名称相同。您只需要更改视图名称。
您可以使用两种方式处理异常
try:
Report.objects.get(account_profile=current_profile)
except Report.DoesNotExist:
print("report doesn't exist")
current_report=None
Run Code Online (Sandbox Code Playgroud)
或者
try:
Report.objects.get(account_profile=current_profile)
except ObjectDoesNotExist:
print("report doesn't exist")
current_report=None
Run Code Online (Sandbox Code Playgroud)
不存在
异常 Model.DoesNotExist
ORM 在几个地方引发此异常,例如,当未找到给定查询参数的对象时,由 QuerySet.get() 引发。Django 提供DoesNotExist 异常作为每个模型类的属性,以标识无法找到的对象类,并允许您使用try/ except 捕获特定模型类。该异常是 django.core.exceptions.ObjectDoesNotExist 的子类。
导入例外,
from django.core.exceptions import ObjectDoesNotExist
Run Code Online (Sandbox Code Playgroud)
抓住它
try:
Report.objects.get(account_profile=current_profile)
except ObjectDoesNotExist:
print("report doesn't exist")
current_report=None
Run Code Online (Sandbox Code Playgroud)
因为ObjectDoesNotExist是Django特定的异常,你必须导入它才能捕获它.
此外,它不是模型的属性 Model.ObjectDoesNotExist
| 归档时间: |
|
| 查看次数: |
3115 次 |
| 最近记录: |