2015-10-26 4 views
1

Я новичок в Odoo 8, я пытаюсь создать сайт с динамической таблицей (Использованием ули и Ли),Как retrive данные из базы данных в Odoo 8

я не знаю, как retrive данных из базы данных ,

Может ли кто-нибудь помочь мне, как это сделать?

INIT .py:

import controller 
import books 

нож .py

{ 
'name': 'Book', 
'version': '1.0', 
'category': 'Tools', 
'summary': 'Test Book', 
'description': "", 
'depends' : ['base'], 
'data' : ['views/book.xml'], 
'images': [], 
'qweb':[], 
'installable' : True, 
'application': True, 
} 

controllerA.py:

import openerp.http as http 
from openerp.http import request 

class Book(http.Controller): 
@http.route('/page/getjson/', auth='public') 
def index(self, **kw): 
    Books = http.request.env['x_book.book'] 
    return http.request.render('book.index', { 
     'books': Books.search([]) 
    }) 

books.py (модель):

from openerp import models, fields 

class books(models.Model): 

_name = "x_book.book" 

name = fields.Char(size=32, string="x_name") 
desc = fields.Char(size=32, string="x_desc") 

book.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<openerp> 
<data> 
<template id="index"> 
    <title>Academy</title> 
    <ul> 
     <t t-foreach="books" t-as="book"> 
     <li><t t-esc="book.name"/></li> 
     </t> 
    </ul> 
</template> 
</data> 
</openerp> 

Я получаю сообщение об ошибке, когда я ударяя этот адрес http://localhost:8069/page/getjson

Внутренняя ошибка сервера

Сервер обнаружил внутреннюю ошибку и не смог заполните ваш запрос. Либо сервер перегружен, либо есть ошибка в приложении.

ответ

0

Вы можете попробовать Этот код: может быть его работой.

from openerp.addons.web import http 
from openerp.addons.web.http import request 

class Book(http.Controller): 
    @http.route('/page/getjson/', type='http', auth='public', website=True) 
    def index(self, **kw): 
     Books = request.env['x_book.book'] 
     return request.render('book.index', { 
     'books': Books.search([]) 
    }) 
+0

Привет, я получаю сообщение об ошибке, «поиск() принимает по крайней мере 4 аргументы (2 приведено)» –

1

Извлечение из building a website Howto, если у вас есть контроллер-опрос ОРМ и возвращающую набор записей из academy.teachers в переменной с именем teachers

class Academy(http.Controller): 
@http.route('/academy/academy/', auth='public') 
def index(self, **kw): 
    Teachers = http.request.env['academy.teachers'] 
    return http.request.render('academy.index', { 
     'teachers': Teachers.search([]) 
    }) 

Вы можете создать свой список с

<template id="index"> 
     <title>Academy</title> 
     <ul> 
      <t t-foreach="teachers" t-as="teacher"> 
      <li><t t-esc="teacher.name"/></li> 
      </t> 
     </ul> 
    </template> 
+0

спасибо за Ваш ответ eLBati, я получаю внутреннюю ошибку сервера –

+0

Вы должны смотреть на журнале сервера, что odoo говорит – eLBati