2

Ich komme aus Python Django Framework Welt und ich frage mich, ob es in Odoo Controller möglich ist, Modell-Form wie in Django zu rendern. Zum Beispiel:odoo automatisch generiere Modellform in Controller

class PartnerController(http.Controller): 
    @http.route('partner/create') 
    def create_form(self, **kw): 
     model = request.registry['res.partner'] 
     form = auto generate html form view for the model 
     return form 

Oder vielleicht eine Möglichkeit, automatisch ein bereits bestehenden ir.ui.view auf der Website von der Steuerung zu zeigen.

Die Idee besteht darin, bereits definierte Ansichten wiederzuverwenden und nicht jedes Mal die Ansichten für jedes Modell neu zu schreiben.

Ich kenne bereits den Website-Builder, aber ich möchte etwas, das einfach in ein Modul hinzugefügt werden kann.

Tut jemand schon so etwas in odoo8/9?
Vielen Dank im Voraus.

Antwort

3

Odoo Controller können Daten abfragen und dann Vorlagen mit diesen Daten rendern. Dies geschieht mit:

return request.website.render("<XMLId-for-my-QWeb-view", {<data dict>}) 

Als Beispiel können Sie die Job List Webseite Seite überprüfen:

# Render page 
    return request.website.render("website_hr_recruitment.index", { 
     'jobs': jobs, 
     'countries': countries, 
     'departments': departments, 
     'offices': offices, 
     'country_id': country, 
     'department_id': department, 
     'office_id': office_id, 
    }) 

Das Datenwörterbuch in der Qweb Vorlage dann verwendbar ist, wiedergegeben werden. In diesem Beispiel ist die verwendete Vorlage website_hr_recruitment.index.

Beachten Sie, dass von Ihnen QWeb-Ansichten erwartet werden. AFAIK reguläre Formular- und Listenansichten können nicht im Website-Frontend sein.

+0

hi @daniel die Abfrage über "wiederverwendbare Modell-Form" wie in Django, von meinem Verständnis ist es nicht möglich in odoo, Odoo haben keine generische Formularvorlage für alle Modelle, Was denken Sie darüber? – prakash

+0

QWeb-Vorlagen können andere Vorlagen verwenden, z. B. mit der Anweisung 't-call'. Ich würde also sagen, dass ein gleichwertiges Feature verfügbar ist. –

+0

Danke @Daniel für das Beispiel. wenn ich es gut verstehe. In odoo kann ich nur verschiedene Ansichten erstellen, die in anderen Ansichten durch "t-call" rechts wiederverwendet werden können? Ist es möglich, odoo automatisch ein Formular für mich generieren zu lassen? Wie ich verstehe, kann ich nur einen bestehenden nennen. – justice