You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
'revision.revert(delete=True)' should delete existing objects not present in the version to which we are reverting, but its not deleting the extra objects
#975
Open
Prakhar1247 opened this issue
Aug 20, 2024
· 0 comments
A Transaction can be associated to multiple Questions (Transaction_Quest) and a Question can be associated to multiple attachments (Transaction_Ques_Attachment)
So when I am creating a new entry for these models under with reversion.create_revision(): block, so a new version is created for each of the three models with same revision id.
Example:-
A user created a record containing:-
1 object for Transaction model
2 objects for Transaction_Quest model with id=1 and id=2
2 objects for Transaction_Ques_Attachment with id=1 and id=2 associated to 1st object (id=1) of Transaction_Quest model, while 2nd object of Transaction_Quest model is not associated to any object of Transaction_Ques_Attachment.
So in total there are 5 version entries created with same revision_id = 1 as-
1 version for Transaction model, 2 versions for Transaction_Quest model and 2 versions for Transaction_Ques_Attachment model.
Updating same record under with reversion.create_revision(): block, so again a new version is created for each of the three models with same revision id as below:-
Now this time user updated the above record and this time he added 2 more new objects in the Transaction_Ques_Attachment model associated to same 1st object (id=1) of Transaction_Quest model and updated some data in the object of Transaction model and 2nd object of Transaction_Quest model. So now this time 7 version entries created with same revision_id = 2 which now is also the selected version.
1 version for Transaction model, 2 versions for Transaction_Quest model and 4 versions for Transaction_Ques_Attachment model associated to 1st object (id=1) of Transaction_Quest model.
Logic to revert back to any specific version
Now for reverting to previous version i.e. revision_id=1 from revision_id=2, I am using below logic and I have passed delete=True:-
from reversion.models import Revision
revision = Revision.objects.get(id=1)
revision.revert(delete=True)
So after reverting to previous version i.e. revision_id=1 extra 2 objects present in revision_id=2 for model Transaction_Ques_Attachment should be deleted as version 1 does not have these objects. But even after using delete=True option those extra 2 objects are not getting deleted from the Transaction_Ques_Attachment model. Though other records are reverted back to version 1 but the extra 2 records which were added in version 2 are still there in the Transaction_Ques_Attachment model even after reverting back to Version 1.
So need help on this issue as to why revision.revert(delete=True) is not working as expected and why the extra records not getting deleted from the Transaction_Ques_Attachment model even after reverting back to 1st revision?
The text was updated successfully, but these errors were encountered:
I have three models defined as:-
A Transaction can be associated to multiple Questions (Transaction_Quest) and a Question can be associated to multiple attachments (Transaction_Ques_Attachment)
So when I am creating a new entry for these models under
with reversion.create_revision():
block, so a new version is created for each of the three models with same revision id.Example:-
A user created a record containing:-
So in total there are 5 version entries created with same revision_id = 1 as-
1 version for Transaction model, 2 versions for Transaction_Quest model and 2 versions for Transaction_Ques_Attachment model.
Updating same record under
with reversion.create_revision():
block, so again a new version is created for each of the three models with same revision id as below:-Now this time user updated the above record and this time he added 2 more new objects in the Transaction_Ques_Attachment model associated to same 1st object (id=1) of Transaction_Quest model and updated some data in the object of Transaction model and 2nd object of Transaction_Quest model.
So now this time 7 version entries created with same revision_id = 2 which now is also the selected version.
1 version for Transaction model, 2 versions for Transaction_Quest model and 4 versions for Transaction_Ques_Attachment model associated to 1st object (id=1) of Transaction_Quest model.
Logic to revert back to any specific version
Now for reverting to previous version i.e. revision_id=1 from revision_id=2, I am using below logic and I have passed delete=True:-
So after reverting to previous version i.e. revision_id=1 extra 2 objects present in revision_id=2 for model Transaction_Ques_Attachment should be deleted as version 1 does not have these objects. But even after using delete=True option those extra 2 objects are not getting deleted from the Transaction_Ques_Attachment model. Though other records are reverted back to version 1 but the extra 2 records which were added in version 2 are still there in the Transaction_Ques_Attachment model even after reverting back to Version 1.
So need help on this issue as to why revision.revert(delete=True) is not working as expected and why the extra records not getting deleted from the Transaction_Ques_Attachment model even after reverting back to 1st revision?
The text was updated successfully, but these errors were encountered: