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

  • Codecourse

    Codecourse

    3 ŞUBAT 2009
  • Defence Videos

    Defence Vide

    13 Mayıs 2013
  • filmurfreakur

    filmurfreaku

    29 Mart 2007