шаблон. xml файл "Форма регистрации предмета для студента", если я выберу "курс" в зависимости от значения поля курса, пакет будет обновлен.
<template id="openeducat_create_subject_registration" name="Create Subject Registration">
<t t-call="portal.portal_layout">
<t t-call="portal.portal_searchbar">
<t t-set="title">Subject Registration Form</t>
</t>
<t t-if="not student_id">
<p>There are currently no information for your account!!!</p>
</t>
<div t-if="student_id" style="background-color:white; padding: 20px 40px 20px 40px;">
<div class="mt32">
<form action="/subject/registration/submit" method="post" role="form"
enctype="multipart/form-data">
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
<div class="row col-md-12">
<div class="row col-md-6">
<input type="hidden" name="student_id" t-attf-class="form-control"
t-att-value="student_id.id"/>
<div class="col-md-4 mt8">
<lable for="course_id">Course:</lable>
</div>
<div class="col-md-8">
<select id="course_dropdown" class="form-control" name="course_id"
onchange="myFunction()">
<option value="" class="disabled selected">
<lable>Select your option</lable>
</option>
<t t-foreach="course" t-as="course_id">
<option t-att-value="course_id.id">
<t t-esc="course_id.name"/>
</option>
</t>
</select>
</div>
<script>
function myFunction() {
odoo.define("op.batch", function (require) {
var rpc = require('web.rpc');
var course = document.getElementById("course_dropdown");
rpc.query({
model: 'op.batch',
}).then(function (data) {
for(i in data){
alert(i);
document.getElementById("batch_id").value = i.name;}
});
});
}
</script>
<div class="col-md-4 mt16">
<lable for="batch_id">Batch:</lable>
</div>
<div class="col-md-8 mt8">
<select class="form-control" name="batch_id">
<option value="" class="disabled selected">
<lable>Select your option</lable>
</option>
<option>
<t id="batch_id" t-esc="batch_id"/>
</option>
</select>
</div>
</div>
<div class="row col-md-6">
<div class="col-md-6 mt8">
<lable for="min_unit_load">Minimum Unit Load:</lable>
</div>
<div class="col-md-6">
<input type="number" name="min_unit_load" t-attf-class="form-control"
t-attf-value="student_id.min_unit_load"/>
</div>
<div class="col-md-6 mt16">
<lable for="max_unit_load">Maximum Unit Load:</lable>
</div>
<div class="col-md-6 mt8">
<input type="number" name="max_unit_load" t-attf-class="form-control"
t-attf-value="student_id.max_unit_load"/>
</div>
</div>
</div>
<div class="mt32"/>
<div t-if="user_id.sudo().is_student" class="row col-md-12">
<div class="col-md-2 mt8">
<lable for="compulsory_subject_ids">Compulsory Subjects:</lable>
</div>
<div class="col-md-10" style="padding-left: 5px;">
<select class="form-control js-example-basic-multiple subjects"
name="compulsory_subject_ids" multiple="True" required="1">
<t t-foreach="subjects or []" t-as="subject">
<t t-if="subject.subject_type == 'compulsory'">
<option t-att-value="subject.id">
<t t-esc="subject.name"/>
</option>
</t>
</t>
</select>
</div>
</div>
<div t-if="user_id.sudo().is_student" class="row mt8 col-md-12">
<div class="col-md-2 mt8">
<lable for="elective_subject_ids">Elective Subjects:</lable>
</div>
<div class="col-md-10" style="padding-left: 5px;">
<select class="form-control js-example-basic-multiple subjects"
name="compulsory_subject_ids" multiple="True" required="1">
<t t-foreach="subjects or []" t-as="subject">
<t t-if="subject.subject_type == 'elective'">
<option t-att-value="subject.id">
<t t-esc="subject.name"/>
</option>
</t>
</t>
</select>
</div>
</div>
<div class="clearfix mb16 mt16 row col-md-12">
<div class="col-md-4">
<button type="submit" class="btn btn-primary">
SUBMIT
<span class="fa fa-long-arrow-right"/>
</button>
</div>
</div>
</form>
</div>
</div>
</t>
</template>
файл model.py все поля доступны здесь.
class OpSubjectRegistration(models.Model):
_name = "op.subject.registration"
_inherit = ["mail.thread"]
name = fields.Char('Name', readonly=True, default='New')
student_id = fields.Many2one('op.student', 'Student', required=True,
track_visibility='onchange')
course_id = fields.Many2one('op.course', 'Course', required=True,
track_visibility='onchange')
batch_id = fields.Many2one('op.batch', 'Batch', required=True,
track_visibility='onchange')
compulsory_subject_ids = fields.Many2many(
'op.subject', 'subject_compulsory_rel',
'register_id', 'subject_id', string="Compulsory Subjects",
readonly=True)
elective_subject_ids = fields.Many2many(
'op.subject', string="Elective Subjects")
state = fields.Selection([
('draft', 'Draft'), ('submitted', 'Submitted'),
('approved', 'Approved'), ('rejected', 'Rejected')],
default='draft', string='state', copy=False,
track_visibility='onchange')
max_unit_load = fields.Float('Maximum Unit Load',
track_visibility='onchange')
min_unit_load = fields.Float('Minimum Unit Load',
track_visibility='onchange')
, пожалуйста, помогите мне сделать это, я застрял на javascript, как это сделать, используя javascript, как взять записи модели и выполнить операции.