Dieser Artikel beschreibt, wie man bestimmte Felder bei einem Modul mit Defaultwerten versehen kann. Nachfolgend wird eine Methode verwendet, welche die Defaultwerte durch eine weitere .xml-Datei setzt. Diese Methode wird an dem Modul eq_references beispielhaft beschrieben.
Um einen genaueren Überblick über die verwendeten Felder zu bekommen, wird nun zuallererst an einem Code-Snippet der .py Datei aufgezeigt, wie die Felder eq_ref_speciality_label, eq_ref_difference_label und eq_ref_customer_benefit_label definiert wurden. Hierbei fällt auf, dass die einzelnen Felder nicht wie üblich schon hier mit Defaultwerten versehen sind. Zum Beispiel folgendermaßen:
eq_ref_speciality_label = fields.Char(string="Speciality [eq_references]",required=False, default="mein Defaultwert")
from openerp import models, fields, api, _ import requests from openerp.osv import osv class eq_website_customerportal_config(models.TransientModel): _name = 'eq.website.customerportal.config' _inherit = 'eq.website.customerportal.config' eq_ref_speciality_label = fields.Char(string="Speciality [eq_references]",required=False) eq_ref_difference_label = fields.Char(string="Difference [eq_references]",required=False) eq_ref_customer_benefit_label = fields.Char(string="Customer Benefit [eq_references]",required=False)
Das Setzen der Defaultwerte geschieht in einer separaten .xml-Datei (bei unserem Modul mit der Betitelung set_config_defaults.xml), welche sich in einem Unterordner "data" des Moduls eq_references befindet. Die verschiedenen Records der .xml-Datei sind wie folgt aufgebaut:
- das entsprechende Model: hier ir.config_paramater
- die entsprechende id des Records
- den Key des Feldes: hier zum Beispiel eq.ref.speciality.label
- und zum Schluss den standardgemäß-gesetzten Defaultwert: hier Spezialgebiet
<?xml version="1.0" encoding="utf-8"?> <openerp> <data noupdate="1"> <record model="ir.config_parameter" id="eq_ref_speciality"> <field name="key">eq.ref.speciality.label</field> <field name="value">Spezialgebiet</field> </record> <record model="ir.config_parameter" id="eq_ref_difference"> <field name="key">eq.ref.difference.label</field> <field name="value">Der Unterschied</field> </record> <record model="ir.config_parameter" id="eq_ref_benefit"> <field name="key">eq.ref.customer.benefit.label</field> <field name="value">Ihr Kundenvorteil</field> </record> </data> </openerp>
Nach der Beschreibung der einzelnen Records in der set_config_defaults.xml werden nun die oben näher beschriebenen einzelnen Felder standardgemäß mit den angegebenen Default-Werten versehen (siehe nachfolgende Abbildung).
Zusammenfassung:
Dieser Artikel soll eine Hilfe für Entwickler darstellen, die bei gewissen Feldern eines Moduls schon standardgemäß Default-Werte setzen möchten. Die oben beschriebene Lösungsmöglichkeit ist übersichtlicher, da man alle Defaultwerte in einer einzigen .xml-Datei pflegen kann.
Modul: eq_references
Version. 1.0.1
Related articles