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

  • case LianLi

    case LianLi

    28 Mayıs 2010
  • LavcoPriceTech

    LavcoPriceTe

    21 AĞUSTOS 2010
  • UberFacts

    UberFacts

    26 EKİM 2013