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

  • hytchme

    hytchme

    9 Mart 2014
  • Lamarr Wilson

    Lamarr Wilso

    27 Aralık 2008
  • the one am radio

    the one am r

    6 Mayıs 2006