Rumah  >  Soal Jawab  >  teks badan

python - model django menggunakan get atau penapis

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

membalas semua(3)saya akan balas

  • 淡淡烟草味

    淡淡烟草味2017-06-12 09:23:33

    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

    balas
    0
  • 阿神

    阿神2017-06-12 09:23:33

    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

    balas
    0
  • PHP中文网

    PHP中文网2017-06-12 09:23:33

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

    balas
    0
  • Batalbalas