میخواستم بدونم در زمانی که یک فیلد تعریف میکنم و استیت هایی وجود دارن چطوری میشه روی اون فیلدها شرایطی رو در نظر گرفت مثلا فقط خواندنی شدن اون فیلد.
1 پاسخ
داخل فیلدها میتونیم از استیت ها برای شرایطشون در زمان تعریفشون استفاده کنیم :
به غیر از خواندنی کردن فیلد، پارامتر states می تواند چند عمل دیگر را نیز انجام دهد. برخی از این عمل ها عبارتند از:
• مخفی کردن فیلد با استفاده از ('invisible', True)
• غیرفعال کردن فیلد با استفاده از ('readonly', True)
• تغییر رنگ فیلد با استفاده از ('color', 'red')
• تغییر ویجت فیلد با استفاده از ('widget', 'name_of_widget')
برای مثال، اگر می خواهید فیلد origin را در حالت draft مخفی کنید، می توانید این کد را بنویسید:
origin = fields.Char(
'Source Document', index='trigram',
states={'done': [('readonly', True)], 'cancel': [('readonly', True)], 'draft': [('invisible', True)]},
help="Reference of the document")