python - django model是用get還filter
女神的闺蜜爱上我
女神的闺蜜爱上我 2017-06-12 09:21:33
0
3
893

如下面程式碼,會根據實例ID取得實例對象,大家知道get的時候如果id不存在會出現異常,但是filter不會。
那麼,請問大家,像類似這種情況是用get然後處理異常要好呢,還是filter來做呢,哪種更規範?

def get_city_image(self, instance):
        if instance.city_id:
            try:
                city_image = City.objects.get(id=instance.city_id).image.url
                # city_image = City.objects.filter(id=instance.city_id).last().image.url
            except Exception, e:
                city_image = None
        else:
            city_image = None
        return city_image
女神的闺蜜爱上我
女神的闺蜜爱上我

全部回覆(3)
淡淡烟草味

雷雷

阿神

框架選擇設計問題,django 是扔異常,別的框架直接返回None,看你喜歡那種,我不喜歡這種直接扔異常,直接補一個自己的方法就行了

參考連結: django 擴充/補丁 QuerySet

洪涛

用filter.first 效率是一樣的,並且不會拋異常

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板