2010-02-04 26 views
0

我想要檢索最近添加的元素,如果根本沒有,分配一些默認值,如:的Django,過濾最近添加的元素

query = X.objects.filter(name="aa",type="b")[0] 
if query: 
    resultname =query.name 
    resulttype = query.type 
else: 
    resultname = "a default name" 
    resulttype = "a default type" 

這是行不通的,因爲這將提高第一行query = X.objects.filter(name="aa",type="b")[0]執行並且過濾的查詢列表爲空時會出現異常。

+0

這不一定會獲取最近添加的元素。只是「QuerySet」的第一個元素。您必須在模型的某個字段中進行排序,例如'created_at'。 – 2010-02-04 10:07:33

回答

0

QuerySet編制索引會生成單個模型(如果存在)。如果不存在,請捕獲異常,或者在QuerySet上事先使用len()以查看是否找到任何記錄。

+0

如果不存在相關的異常,那會是什麼情況?謝謝 – Hellnar 2010-02-04 10:01:04

+0

不知道。試試看並檢查日誌。 – 2010-02-04 10:03:29

+0

除了IndexError:似乎修復它,TY – Hellnar 2010-02-04 10:21:56