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

  • alex maybury

    alex maybury

    20 Aralık 2007
  • Charles Renaud

    Charles Rena

    10 Kasım 2007
  • The Brister

    The Brister

    10 ŞUBAT 2008