2012-06-03 11 views
5

bir çağrıda aşağıdaki başarmak için bir yol var mıModel.objects.get() veya Yok

try: 
    object = Model... 
except: 
    object = None 

Bunu django'da tek bir aramada yapmanın bir yolu var mı?

Güncelleme: Burada Orada bir try/except blokta daha bu diğer yapmanın bir yolu gibi görünüyor, ama değil, daha iyi bir cevaptır: In Django, how do I objects.get, but return None when nothing is found?

+0

Eh, zaten soru çözülmüş görünüyor . Ek bir argüman olarak, şunu kullanın: ... (özel istisnalar kullanarak) hariç, Python'da (aynı felsefeyi izleyen Django'yu bırakın) iyi bir uygulama olarak kabul edilir. –

+2

'(Model.objects.filter (pk = 1) veya [None]) [0]' daha az açık ancak bazen de yararlıdır. – okm

+0

olası kopyası [In Django, nasıl objects.get veririm, ancak hiçbir şey bulunamadığında None döndürürler?] (Http://stackoverflow.com/questions/3090302/in-django-how-do-i-objects-get) but-dönüş yok-zaman-şey-bulunursa – congusbongus

cevap

2

bir web isteği içinde kullanıyorsanız ve siz nesne belki yoksa yapmanız Modelinizdeki

get_object_or_404(Mode, pk=1) 
0

get_object_or_404

kullanmalıdır 404 dönmek istiyorum. . .

@models.permalink 
def get_absolute_url(self): 
    return "/blog/%s/" self.slug 
İlgili konular