SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • beautyexchange

    beautyexchan

    4 EYLÜL 2006
  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010
  • Pituvision

    Pituvision

    11 Mart 2006