2

私は Hr_Recruitment モジュールに取り組んでいます。HR->Application のバイナリ イメージ フィールドを追加しました。外部ユーザーが Web サイトを介して自分で求人応募に記入する機能を追加しようとしています。名前、電子メール、電話、履歴書の添付ファイルを追加しました。求人応募の Web サイトのフィールド。送信をクリックすると、HR-> 求人応募フォームで更新されます。しかし、応募で画像フィールドが更新されません。求人応募を開くと、「選択したものを表示できませんでした」のようなメッセージが表示されます。この問題を解決するにはどうすればよいですか?

コントローラー/main.py

if post.get('image',False):
            image = request.registry['ir.attachment']
            name = post.get('image').filename      
            file = post.get('image')
                attach = file.stream
                file.show()

                f = attach.getvalue()

                webbrowser.open(image)
            attachment_id = Attachments.create(request.cr, request.uid, {
                    'name': image,
                    'res_name': image,
                    'res_model': 'hr.applicant',
                    'res_id': applicant_id,
                        'datas': base64.decodestring(str(res[0])),
                        'datas_fname': post['image'].filename,
        }, request.context)

views/templates.xml

<div t-attf-class="form-group">
                    <label class="col-md-3 col-sm-4 control-label" for="image">Image</label>
                    <div class="col-md-7 col-sm-8">
                                        <img id="uploadPreview" style="width: 100px; height: 100px;" />
                            <input id="uploadImage" name="image" type="file" class="file" multiple="true" data-show-upload="true" data-show-caption="true" data-show-preview="true" onchange="PreviewImage();"/>
                    </div>
                     </div>

ウェブサイトページの申し込みフォーム 人事→応募フォーム

4

2 に答える 2

2

以下に示すように、XML テンプレートに画像フィールドを追加します。

<img itemprop="image" style="margin-top: -53px; margin-left:19px; width:80px;" class="img img-responsive" t-att-src="website.image_url(partner, 'image', None if product_image_big else '300x300')"/>
<input class="input-file profileChooser" id="fileInput" type="file" name="ufile" onchange="validateProfileImg();"/>

不要な属性を削除してください。

コントローラー関数では、次のように画像フィールドから値を取得できます。

vals = {}
if post['ufile']:
    vals.update({'image': base64.encodestring(post['ufile'].read())})
request.registry['res.partner'].write(cr, uid, [partner_id], vals)

上記のコードは私にとってはうまくいきます。これを使用して、ODOO Web サイトからパートナーの画像を更新しています。

于 2016-06-22T06:06:09.543 に答える