Code

Opened 21 months ago

Last modified 11 months ago

#18717 assigned Bug

Setting attributes on deferred objects should trigger field's descriptor's __set__()

Reported by: Kronuz Owned by: shaz
Component: Database layer (models, ORM) Version: 1.4
Severity: Normal Keywords:
Cc: Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: yes Patch needs improvement: yes
Easy pickings: no UI/UX: no

Description

Setting attributes on deferred objects (DeferredAttribute) should trigger original field's descriptor's set() (if any).
Currently, specially for custom fields set up as descriptors defining set(), the original field's set is never called when setting object attributes on deferred fields.

Attachments (1)

#18717-deferred_fields_and_descriptors.diff (864 bytes) - added by Kronuz 21 months ago.

Download all attachments as: .zip

Change History (4)

comment:1 Changed 18 months ago by lrekucki

  • Needs documentation unset
  • Needs tests set
  • Patch needs improvement set
  • Triage Stage changed from Unreviewed to Accepted

The patch failes as DeferredAttribute no longer has model_ref. On a side note, {{{_meta.get_field_by_name}} can be used instead of iterating.

Version 0, edited 18 months ago by lrekucki (next)

comment:2 Changed 13 months ago by aaugustin

  • Component changed from Uncategorized to Database layer (models, ORM)
  • Type changed from Uncategorized to Bug

comment:3 Changed 11 months ago by shaz

  • Owner changed from nobody to shaz
  • Status changed from new to assigned

Add Comment

Modify Ticket

Change Properties
<Author field>
Action
as assigned
The owner will be changed from shaz to anonymous. Next status will be 'assigned'
The ticket will be disowned. Next status will be 'new'
as The resolution will be set. Next status will be 'closed'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.