python - model django menggunakan get atau penapis
女神的闺蜜爱上我
女神的闺蜜爱上我 2017-06-12 09:21:33
0
3
881

Seperti yang ditunjukkan dalam kod berikut, objek instance akan diperolehi berdasarkan ID instance Seperti yang kita sedia maklum, jika ID tidak wujud semasa mendapatkan, pengecualian akan berlaku, tetapi penapis tidak.
Jadi, saya ingin bertanya kepada semua orang, dalam situasi seperti ini, adakah lebih baik menggunakan get dan mengendalikan pengecualian, atau adakah lebih baik menggunakan penapis untuk melakukannya dengan lebih baik?

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
女神的闺蜜爱上我
女神的闺蜜爱上我

membalas semua(3)
淡淡烟草味
def get_city_image(self, instance):
    try:
        city_image = City.objects.get(id=instance.city_id).image.url
    except City.DoesNotExist:
        #捕获City不存在的异常, 抛出异常或是自己处理
        city_image = None
        
    return city_image
阿神

Isu pemilihan rangka kerja dan reka bentuk, Django melontar pengecualian, rangka kerja lain terus mengembalikan Tiada, ia bergantung pada yang mana satu yang anda suka, saya tidak suka jenis lontaran pengecualian secara langsung, cuma buat kaedah anda sendiri

Pautan rujukan: sambungan django/patch QuerySet

洪涛

Kecekapan menggunakan filter.first adalah sama dan tidak terkecuali akan dilemparkan

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan