小编Mou*_*Tio的帖子

如何在 Django 模型中设置表约束“可延迟初始延迟”?

我正在尝试使用 postgresql 数据库在 django 中为表模型设置约束。

我可以通过 postgresql 用这句话来做到这一点:

ALTER TABLE public.mytable ADD CONSTRAINT "myconstraint" UNIQUE(field1, field2) DEFERRABLE INITIALLY DEFERRED;
Run Code Online (Sandbox Code Playgroud)

但我想通过 django 模型来做。阅读 django 官方文档我没有发现任何相关的内容。

我需要这样的东西:

class Meta:
  unique_together = (('field1', 'field2',), DEFERRABLE INITIALLY DEFERRED)
Run Code Online (Sandbox Code Playgroud)

有可能做这样的事情吗?

django postgresql constraints django-models

5
推荐指数
3
解决办法
2437
查看次数

如何使用函数过滤域视图?在 odoo 9

我想用一个函数而不是一个变量来过滤一个域,以便在视图中只显示一些寄存器。我已经这样做了:

class SaleOrderExt(models.Model):
    _inherit = ['sale.order']

    @api.multi
    def custom_funct_date(self):
        my_date = ... (some stuff)
        return my_date
Run Code Online (Sandbox Code Playgroud)

然后,在视图中,我过滤了域:

<?xml version="1.0"?>
<openerp>
  <data>
    <record id='action_menu_custom_date' model='ir.actions.act_window'>
      <field name="name">This is a test</field>
      <field name="res_model">sale.order</field>
      <field name="view_type">form</field>
      <field name="view_mode">tree,form</field>
      <field name="domain">[('date_order','>=',custom_funct_date)]</field>
    </record>
  </data>
</openerp>
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误:

ValueError: "name 'custom_funct_date' is not defined" while evaluating
u"[('date_order','>=',custom_funct_date)]" 
Run Code Online (Sandbox Code Playgroud)

filter openerp odoo-9

4
推荐指数
1
解决办法
7209
查看次数

如何在树视图标题中创建一个按钮(在创建和导入按钮旁边)并赋予它功能?在 odoo 9

我正在尝试在销售订单模块的树视图中添加一个按钮,旁边是创建导入按钮。该按钮将执行一个 python 方法。

我已经创建了我的自定义模块,扩展了销售订单模块,然后,我遵循了以下步骤:

第 1 步:在 my_module/static/src/xml/qweb.xml 中创建按钮:

<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
  <t t-extend="ListView.buttons">
    <t t-jquery="button.o_list_button_add" t-operation="after">
      <t t-if="widget.model=='sale.order'">
        <button class="btn btn-sm btn-primary update_sales_button" type="button">Run my stuff</button>
      </t>
    </t>
  </t>
</templates>
Run Code Online (Sandbox Code Playgroud)

第 2 步:将文件添加到我模块的 __openerp.py__ 中的 qweb 部分:

'depends': ['sale'],
'data': [],
'qweb': ['static/src/xml/qweb.xml'],
Run Code Online (Sandbox Code Playgroud)

现在,按钮出现。

第 3 步:创建 python 方法来为 my_module/my_python_file.py 中的按钮提供功能:

from openerp import api, fields, models, _

class SaleOrderExtended(models.Model):
  _inherit = ['sale.order']

  @api.multi
  def update_sales_button(self):
    ... …
Run Code Online (Sandbox Code Playgroud)

openerp qweb odoo-9

3
推荐指数
1
解决办法
4416
查看次数

如何使用Cordova在iOS设备上的iCloud中读取文件?

我想阅读存储在iCloud中的PDF文件的内容。

  1. 我使用FilePicker Phonegap iOS插件(https://github.com/jcesarmobile/FilePicker-Phonegap-iOS-Plugin)选择文件。该插件为我提供了文件复制的临时路径。

  2. 我想读一下Cordova文件插件(https://github.com/apache/cordova-plugin-file),但是我做错了什么,日志总是给我一个错误。

这是代码:

$scope.successCallback = function (path) {
    var fileName = path.substr(path.lastIndexOf('/') + 1);
    var fileDir = path.substr(0,path.lastIndexOf('/') + 1)
    console.log("FilePath: " + path);

    $cordovaFile.readAsDataURL(fileDir, fileName)
      .then(function (data) {
          var index = data.indexOf("base64,");
          if(index > 0)
          {
              data = data.substr(index+7);
          }
          console.log("Data OK=" + data);
      }, function (error) {
          console.log("Error reading file: " + JSON.stringify(error));
      });                 
}
window.FilePicker.pickFile($scope.successCallback, $scope.errorCallback);
Run Code Online (Sandbox Code Playgroud)

这就是输出:

$FilePath: /private/var/mobile/Containers/Data/Application/22E33EF4-832B-4911-92A6-312927C42A7C/tmp/DocumentPickerIncoming/file.pdf
$Error reading file: {"code":5,"message":"ENCODING_ERR"}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

filepicker ios angularjs cordova cordova-plugin-file

2
推荐指数
1
解决办法
1534
查看次数

如何设置仅可用于组的字段?在odoo9

在上班时间中,有一个名为“ employee_id”的字段。

我想将此字段设置为仅对一个组可编辑(或对其他组设置为只读)。

例如,我只想在“表单”视图中为“经理”组设置字段“ employee_id”可编辑。

我扩展了出勤模块,并在扩展模块的XML中包含以下代码:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
    <record id="view_employee_readonly_custom" model="ir.ui.view">
        <field name="name">hr.attendance.form</field>
        <field name="model">hr.attendance</field>
        <field name="inherit_id" ref="hr_attendance.view_attendance_form"/>
        <field name="groups_id" eval="[(6,0,[ref('base.group_hr_manager')])]"/>
        <field name="arch" type="xml">
            <field name="employee_id" position="attributes">
                <attribute name="readonly">True</attribute>
            </field>
        </field>
    </record>
    </data>
</openerp>
Run Code Online (Sandbox Code Playgroud)

使用此代码,除hr_manager组之外的所有字段都可编辑。那是我想要的相反。

为了达到此目的,我必须修改什么?

编辑:我已经在其他字段中修改了原始代码,以更好地理解。

odoo odoo-9

2
推荐指数
1
解决办法
5115
查看次数

如何通过带数字的字段在Django中订购QuerySet?

我想通过一个包含数字的字段来命令QuerySet.我有这个代码:

MyTable.objects.all().order_by('my_char_field')
Run Code Online (Sandbox Code Playgroud)

有一些"my_char_field"的例子:

"ver3", "ver10", "x5.1 (1)", "ver4", "x5.1 (2)"
Run Code Online (Sandbox Code Playgroud)

上面代码的顺序结果是:

"ver10", "ver3", "ver4", "x5.1 (1)", "x5.1 (2)"
Run Code Online (Sandbox Code Playgroud)

但我想要的顺序是:

"ver3", "ver4", "ver10", "x5.1 (1)", "x5.1 (2)"
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得自然顺序?

python django django-queryset

0
推荐指数
1
解决办法
1055
查看次数