在Django中从模型中发出加载对象的问题

时间:2016-08-01 11:29:28

标签: python django

我目前正在Django写一个网络应用程序进行采访。

在主页上,我希望有3个不同数据列表。

这是我在加载主页时收到的错误:

invalid literal for int() with base 10: 'Critical'

这是models.py:

from django.db import models
from django.utils import timezone

class Status(models.Model):
    status_level=models.CharField(max_length=15)

    def __str__(self):
        return self.status_level


class Event(models.Model):
    event_status=models.ForeignKey(Status)
    event_title=models.CharField(max_length=50)
    event_description=models.CharField(max_length=500)
    event_flag=models.CharField(max_length=10)
    date_active=models.DateField(default=timezone.now())
    time_active=models.TimeField(default=timezone.now())

    def __str__(self):
        return self.event_title

目前有3个状态对象,严重,中等和低。

Views.py:

def index(request):
    # home page
    critical_list=Event.objects.filter(event_status='Critical')
    medium_list=Event.objects.filter(event_status='Medium')
    low_list=Event.objects.filter(event_status='Low')

    context_dict={'critical':critical_list, 'medium':medium_list,'low':low_list}
    return render(request, 'server_status/index.html',context_dict)

有很多堆栈跟踪,所以我将发布我认为导致问题的两个相关行:

此行发生错误:

critical_list=Event.objects.filter(event_status='Critical') 

然后是堆栈跟踪的最后一行:

   return int(value) ...
▼ Local vars
Variable    Value
self    
<django.db.models.fields.AutoField: id>
value   
'Critical'

1 个答案:

答案 0 :(得分:4)

由于您似乎试图过滤状态模型上的status_level

critical_list=Event.objects.filter(event_status__status_level='Critical')