This module allows the LargeObject Field to be used in different views. It is +installed automatically with the MuK Large Objects module. It has no direct visible effect on the system, but allows LargeObejct +fields to display in XML views.
+
+
+<record id="view_lobject" model="ir.ui.view">
+ <field name="name">lobject.form</field>
+ <field name="model">lobject</field>
+ <field name="arch" type="xml">
+ <form string="LargeObjectModel">
+ <group>
+ <field name="content_fname" />
+ <field name="content" filename="content_fname" />
+ </group>
+ </form>
+ </field>
+</record>
+
+
+ Provides a field to store bytes as PostgreSQL large objects. + PostgreSQL offers support for large objects, which provide + stream-style access to user data that is stored in a special + large-object structure. They are useful with data values too large + to be manipulated conveniently as a whole.
+
+ Psycopg allows access to the large object using the
+ lobject
+ class. Objects are generated using the
+ connection.lobject()
+ factory method. Data can be retrieved either as bytes or as Unicode
+ strings.
+
+ Psycopg large object support efficient import/export with file
+ system files using the
+ lo_import()
+ and
+ lo_export()
+ libpq functions.
+
Changed in version 2.6: added support for large objects + greated than 2GB. Note that the support is enabled only if all the + following conditions are verified:
+
+ If Psycopg was built with 64 bits large objects support (i.e. the
+ first two contidions above are verified), the
+ psycopg2.__version__
+ constant will contain the lo64 flag. If any of the contition is not
+ met several lobject methods will fail if the arguments exceed 2GB.
+
+
+from odoo.addons.muk_fields_lobject import fields as lobject_fields
+
+class LargeObjectModel(models.Model):
+
+ data_content = lobject_fields.LargeObject(string="Data")
+
+ @api.multi
+ def data(self):
+ for record in self:
+ bytes = record.data_content
+ oid = record.with_context({'oid': True}).data_content
+ size = record.with_context({'bin_size': True}).data_content
+ stream = record.with_context({'stream': True}).data_content
+
+
+