2012-06-03 7 views
5

は、1回の呼び出しで、以下を達成する方法はありますModel.objects.get()またはNone

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

djangoでの1回の呼び出しでこれを行う方法はありますか?

更新:ありtry/exceptブロックにおけるよりも、この他を行うための方法であると思われるが、ここでは良い答えではありません:あなたはWebリクエストでそれを使用している場合In Django, how do I objects.get, but return None when nothing is found?

+0

まあ、あなたがすでにあなたの質問を解決しているようです。追加の引数として、try:... except(特定の例外を使用する)は、Pythonでは優れたプラクティスとみなされます(Djangoだけではないが同じ哲学に従う)。 –

+2

'(Model.objects.filter(pk = 1)または[None])[0]'はそれほど明示的ではありませんが、時には便利です。 – okm

+0

可能な複製[Djangoでは、どうやってobject.getを返しますが、何も見つからなかった場合はNoneを返しますか?](http://stackoverflow.com/questions/3090302/in-django-how-do-i-objects-get -but-return-none-when-nothing-is-found) – congusbongus

答えて

2

、そしてあなたオブジェクトが多分存在しない場合、あなたはあなたのモデルに

get_object_or_404(Mode, pk=1) 
0

get_object_or_404

を使用する必要があります404を返すようにしたいです。 。 。このことについてどのように

@models.permalink 
def get_absolute_url(self): 
    return "/blog/%s/" self.slug 
関連する問題