我有一些模块可以扩展Odoo的附加功能.例如,my_module扩展的模型crm:
class Lead(models.Model):
_inherit = 'crm.lead'
# exmaple fields
field_1 = fields.Char(...)
field_2 = fields.Many2one(...)
# ... field 99
class Stage(models.Model):
_inherit = 'crm.stage'
# exmaple fields
field_1 = fields.Char(...)
field_2 = fields.Many2one(...)
# ... field 99
Run Code Online (Sandbox Code Playgroud)
同样的情况是其扩展模块hr,product等我需要做一些改变的车型.例如,在中my_module_1,我需要更改几个字段(类型,关系)my_module_2,仅删除几个字段等.当然,我还需要更改每个模块的视图.当然,我的自定义模型与不同应用程序/模块的模型有依赖关系.但我有必须存储的生产数据.我没有在Odoo中找到有关迁移(或模块同步)的任何信息.
我的问题是:在生产中更新模块/应用程序的最佳方法是什么(如果我们在模型和视图领域有很多变化)?提前致谢.
我有一个模型(我将其用作抽象基类),它具有一些常见的方法和属性。
SQLAlchemy 允许使用 和 创建属性和方法,@hybrid_property而且@hybrid_method标准@property, @classmethod,@staticmethod装饰器也可以给我我想要的结果。
与标准 python 装饰器相比,使用 SQLA 装饰器有什么优点和缺点?
我什么时候应该使用或不应该使用 SQLA 装饰器?
我想使用此扩展为ActiveRecord类FaqCategory实现i18n功能.这是我的表格:
CREATE TABLE `FaqCategory`
(
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`icon` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
CREATE TABLE
`FaqCategoryTranslation`
(
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`catID` int(10) unsigned DEFAULT NULL,
`languageID` tinyint(2) unsigned NOT NULL,
`title` varchar(255) DEFAULT NULL,
`slug` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `catID` (`catID`) USING BTREE,
KEY `languageID` (`languageID`),
CONSTRAINT `FCT_FK1` FOREIGN KEY (`catID`) REFERENCES `FaqCategory` (`id`) ON DELETE CASCADE ON …Run Code Online (Sandbox Code Playgroud) 我和odoo 9一起工作.在系统中存在每种类型字段的render_value方法:
/odoo/addons/web/static/src/js/views/form_widgets.js
/odoo/addons/web/static/src/js/views/form_relational_widgets.js
Run Code Online (Sandbox Code Playgroud)
如何为所有表单使用我的自定义方法render_value(例如在FieldChar中)?以及如何为一个表单或一个模块使用特定的render_value?
我form_widgets.js在我的模块中创建,但我不明白如何正确覆盖Field.
odoo.define('my_module.form_widgets', function (require) {
"use strict";
// what I should do here???
});
Run Code Online (Sandbox Code Playgroud)
你能提供一些小例子吗?预先感谢.
如何将此查询用作自定义搜索查询?
add_filter('posts_search', 'my_search_is_perfect', 20, 2);
function my_search_is_perfect($search, $wp_query)
{
$sWord = 'Zukunft haus';
return "
SELECT *,
MATCH(post_title) AGAINST('$sWord' IN BOOLEAN MODE) AS Score
FROM `wp_posts`
INNER JOIN wp_term_relationships ON wp_term_relationships.object_id = ID
AND wp_term_relationships.term_taxonomy_id = 1
WHERE MATCH( post_title) AGAINST ('$sWord' IN BOOLEAN MODE)
AND `post_status` = 'publish'
AND `post_type` = 'post'
ORDER BY score DESC
";
}
Run Code Online (Sandbox Code Playgroud)
查询是正确的(我在phpMyAdmin中检查过)但在WordPress中我得到了消息,没有结果.
我创建了两个不同的Yii2控制台命令/控制器.
调用它们的示例是
# yii user/create-account
Run Code Online (Sandbox Code Playgroud)
和
# yii webserver/update-config
Run Code Online (Sandbox Code Playgroud)
在用户/创建帐户运行后,我想调用webserver/update-config - 是否可以通过代码在Yii中执行此操作?或者我必须使用exec()/ system()从外部调用第二个yii php脚本(我不愿意).
任何帮助/见解将不胜感激!
我在Project模块中有翻译问题.某些菜单项未翻译.可能是什么问题呢?
这里是project_view.xml
<!-- Top menu item -->
<menuitem name="Project"
id="base.menu_main_pm"
groups="group_project_manager,group_project_user"
icon="fa-calendar"
web_icon="project,static/description/icon.png"
sequence="50"/>
Run Code Online (Sandbox Code Playgroud)
在这里ru.po
#. module: project
#: model:ir.model,name:project.model_project_project
#: model:ir.model.fields,field_description:project.field_project_task_history_cumulative_project_id
#: model:ir.model.fields,field_description:project.field_project_task_project_id
#: model:ir.model.fields,field_description:project.field_report_project_task_user_project_id
#: model:ir.ui.view,arch_db:project.edit_project
#: model:ir.ui.view,arch_db:project.view_task_form2
#: model:ir.ui.view,arch_db:project.view_task_history_search
#: model:ir.ui.view,arch_db:project.view_task_project_user_search
#: model:ir.ui.view,arch_db:project.view_task_search_form
#: model:res.request.link,name:project.req_link_project
msgid "Project"
msgstr "??????"
Run Code Online (Sandbox Code Playgroud) 我的模型中有一些One2Many字段.我在视图中为树元素设置了limit = 5.但是如何将可能值(80-200-500等)的列表更改为我的自定义列表(例如:10-15-etc.)?
这是我的xml:
<!--
info about view:
<record model="ir.ui.view" id="view_my_id_employee_form">
<field name="name">hr.employee.property.form.inherit</field>
<field name="model">hr.employee</field>
<field name="inherit_id" ref="hr.view_employee_form" />
-->
<field name="adaptation_result_ids">
<tree default_order="date desc" limit="5">
<field name="name"/>
<field name="date"/>
</tree>
</field>
Run Code Online (Sandbox Code Playgroud)
也许在设置中使用Window Actions是可能的?
我尝试了不同的方法但都徒劳无功.你能解决我的问题吗?先感谢您.
在同一个表单上有多个模型我不想在两个模型上保存数据,但我只想在视图文件上显示一个变量
我有2个表
Organiser和Event
Organiser将登录和Create Event
现在有几个字段这是常见的用户点击登录,所以当两个表中的Create Event按钮,我想显示address从Organiser表的形式
这是我到目前为止所做的,这可能不是正确的方法,所以让我知道是否可以通过任何其他更简单的方式实现
public function actionCreate()
{
$model = new Event();
$model2 = $this->findModel2(Yii::$app->user->id);
if ($model->load(Yii::$app->request->post())) {
if($_POST['User']['address'] == null)
{
$model->location = $model2->address;
}
else{
$model->location = $_POST['User']['address'];
}
$model->is_active = 1 ;
$model->save();
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('create', [
'model' => $model,
'model2' => $model2
]);
}
}
protected function findModel2($id)
{
if (($model2 = User::findOne($id)) !== null) …Run Code Online (Sandbox Code Playgroud) 我创建了一个更改密码功能来更改管理员密码.我使用了这个 toutorial.
现在我在$ model-> validate()中遇到了问题.
谁能帮我??
调节器
public function actionIndex()
{
$id = 1;
$model = User::model()->findByAttributes(array('usertype' => $id));
$model->setScenario('changePwd');
if (isset($_POST['User'])) {
$model->attributes = $_POST['User'];
if ($model->validate()) {
$model->password = md5($model->new_password);
if ($model->save()) {
Yii::app()->user->setFlash('success', "Password Changed Successfully!");
}
} else {
Yii::app()->user->setFlash('error', "Change Password failed!");
}
}
$this->render('index', array('model' => $model));
}
Run Code Online (Sandbox Code Playgroud)
模型
class User extends CActiveRecord
{
public $old_password;
public $new_password;
public $repeat_password;
/**
* @return string the associated database table name
*/
public …Run Code Online (Sandbox Code Playgroud)