मेरे पास कर्मचारी और विभाग के रूप में दो चयन बॉक्स हैं। जब मैं कर्मचारी के विभाग_आईडी के अनुसार कर्मचारी चुनता हूं तो मैं स्वचालित रूप से विभाग चुनना चाहता हूं।
यहाँ मेरा .py कोड है (Odoo 11)
class HrExpenseExpense(models.Model):
_inherit = "hr.expense"
department_expense_group = fields.Selection(
string='Department Expense Group',
related='department_id.expense_group',
readonly=True,
)
department_id = fields.Many2one('hr.department', string='Department',
states={'post': [('readonly', True)], 'done': [('readonly', True)]})
@api.onchange('employee_id')
def onchange_employee_id(self):
department_id = [x.id for x in self.employee_id.department_id]
return {'domain': {'department_id': [('id', 'in', department_id)]}}
और एक्सएमएल फ़ाइल देखें:
<xpath expr="//field[@name='employee_id']" position="after">
<field name="department_expense_group" invisible="1" />
<field name="department_id" invisible="0"/>
</xpath>
यह काम कर रहा है लेकिन समस्या यह है; जब मैं किसी कर्मचारी को चुनता हूं, तो विभाग चयन बॉक्स स्वचालित रूप से अपडेट हो रहा है, यह ट्रिगर हो रहा है लेकिन स्वचालित रूप से चयन नहीं कर रहा है। चयन बॉक्स की सूची भरने के बाद मैं उस पर क्लिक करता हूं। इसे कर्मचारी की पसंद के अनुसार स्वचालित रूप से चुना जाना चाहिए।
1 उत्तर
आप केवल department_id
फ़ील्ड का फ़िल्टर बदल रहे हैं और अपनी आवश्यकता को पूरा करने के लिए इसे स्वयं पर सेट करना होगा। और आप एक एकल रिकॉर्ड फ़ील्ड (employee_id.department_id
) पर लूपिंग कर रहे हैं जो यहाँ थोड़ा अधिक है।
@api.onchange('employee_id')
def onchange_employee_id(self):
if self.employee_id:
department = self.employee_id.department_id
# set department
self.department_id = department
# don't allow other departments
return {'domain': {'department_id': [('id', '=', department.id)]}}
else:
# empty department
self.department_id = False
# allow other departments
return {'domain': {'department_id': [('id', '!=', False)]}}
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।