SORU
30 Mart 2010, Salı


SQLAlchemy'In get_or_create Django bir eşdeğer var mı?

Eğer zaten varsa, veritabanından bir nesne (sağlanan parametrelere dayalı) almak istiyorum ya eğer öyle değilse oluşturun.

Django get_or_create ... ... yapar. SQLAlchemy eşdeğer bir kısayol var mı?

Şu anda açıkça böyle: bunu yazıyorum

def get_or_create_instrument(session, serial_number):
    instrument = session.query(Instrument).filter_by(serial_number=serial_number).first()
    if instrument:
        return instrument
    else:
        instrument = Instrument(serial_number)
        session.add(instrument)
        return instrument

CEVAP
20 Mayıs 2011, Cuma


@WoLpH çözümü şu, bu benim için çalıştı kod (basit sürüm)

def get_or_create(session, model, **kwargs):
    instance = session.query(model).filter_by(**kwargs).first()
    if instance:
        return instance
    else:
        instance = model(**kwargs)
        session.add(instance)
        session.commit()
        return instance

Bu model herhangi bir nesne get_or_create edebiliyorum.

Model benim nesne olduğunu varsayalım :

class Country(Base):
    __tablename__ = 'countries'
    id = Column(Integer, primary_key=True)
    name = Column(String, unique=True)

Ya yazıyorum benim olsun nesnesi oluşturmak için :

myCountry = get_or_create(session, Country, name=countryName)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FRED

    FRED

    1 EKİM 2005
  • Smith Micro Graphics

    Smith Micro

    15 Mayıs 2008
  • TheDamnWreckless

    TheDamnWreck

    12 Temmuz 2010