2016-08-01 70 views
1

我正在爲Django面試編寫一個Web應用程序。從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' 

回答

4

既然你似乎試圖在status_level過濾的狀態模型

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

這就是我一直在尋找!謝謝。 現在到下一個錯誤... – cmackie21

+0

你是不受歡迎的。既然你在這裏還是新手,我是否可以指出在這裏說'感謝'的首選方式是通過提高投票的好問題和有用的答案(一旦你有足夠的聲望這樣做),並接受最有幫助的答案到任何問題你問(這也給你一個小小的提升你的聲譽)。 – e4c5

+0

謝謝,我從來沒有注意到接受答案按鈕,然後再指出它! – cmackie21