2013-03-28 13 views
6

İçeriği, haber öğelerini yazdığım diğer içerik türlerine kopyalamaya çalışıyorum. Komut dizimde news öğeyi ve project öğem var. İkincisi, project, Dexterity kullanılarak tanımlanmış bir içerik türüdür. Görüntü ve gövde metnini news'dan project'a sonraki şekilde kopyalamak çok güzel olurdu. metin ve görüntü richtext ve NamedBlobImage olarak project şemada tanımlananArchetype haber öğelerini Dexterity içerik türlerine geçirmek

project.text = news.text 
project.image = news.image 

. Özelliklerin haberlerde nasıl olduğunu bilmiyorum. Ben sadece görüntüyü getImage() yöntemini kullanarak haber öğesinde alabileceğimi biliyorum, ancak projeyi oluştururken projeyi oluştururken bir hata oluşturur.

Yani benim temel soruları çözmek için bazı önemli noktaları gerekir:

  1. nasıl Arketipi içerik türleri için özellik adlarını bilebilir. Örneğin, bu durumda haber öğesinin gövde metni için özniteliğin adını bilmem gerekiyor.

  2. Bir haber öğesine eklenmiş görüntüyü el becerisi içerik türüne bağlı görüntüye nasıl dönüştürebilirim.

cevap

6
  1. Bu durumda, değerleri almak için Arketipleri şemasından tercihen çiğ değerleri alanını kullanın. Daha sonra .get() veya .getRaw() ya çağıran nesne geçer:

    schema = news.Schema() 
    news = schema.getField('text').getRaw(news) 
    imageField = schema.getField('image') 
    image = imageField.getRaw(news) 
    content_type = imageField.getContentType(news) 
    filename = imageField.getFilename(news) 
    
  2. ImageField.getRaw() çağrı tarafından döndürülen nesne temelde OFS.Image örneğidir. Ham görüntü verilerini elde etmek için str()'u arayabilirsiniz. için

    gerçekten şemasından görüntü alanını almak ve onu bir fabrika gibi ._type özellik var kullanmak istiyorum, görüntü nesnesi ayarlayın:

    project.image = IProjectInterface.image._type(str(image), 
        contentType=content_type, filename=filename) 
    

    içeriği buraya yazın isteğe bağlıdır; NamedImage ve NamedBlobImage türleri, içerik türünü otomatik olarak algılar.

+0

Dank je vel, Martijn! –

İlgili konular