2 EKİM 2009, Cuma
Django: bir nesne DB form veya 'Hiç bir şey eşleşirse'
Herhangi bir Django eğer hiçbir şey eşleşirse bana bir nesne veritabanı şeklinde olsun, ya da Yok olun işlevi var mı?
Şimdi bir şey gibi kullanıyorum:
foo = Foo.objects.filter(bar=baz)
foo = len(foo) > 0 and foo.get() or None
Ama çok açık değil, ve her yerde dağınık.
CEVAP
7 Ocak 2010, PERŞEMBE
Eklemek için bazı örnek kod için sorki cevabı (isterim ekleyin bu bir yorum, ama bu benim ilk yazı ve ben yok yeterince itibar bırakmak yorumlar), uygulanan bir get_or_none özel yöneticisi gibi
from django.db import models
class GetOrNoneManager(models.Manager):
"""Adds get_or_none method to objects
"""
def get_or_none(self, **kwargs):
try:
return self.get(**kwargs)
except self.model.DoesNotExist:
return None
class Person(models.Model):
name = models.CharField(max_length=255)
objects = GetOrNoneManager()
Ve şimdi bunu yapabilirim:
bob_or_none = Person.objects.get_or_none(name='Bob')
Bunu Paylaş:
Bir nesne başvurusu static olmayan ala...
django sınıf tabanlı bir satır ile mod...
JQuery ile JavaScript nesne için form ...
x-www-form-urlencoded veya çok parçalı...
Ne zaman bir form's opaklık ayarı...