🐛 Two-way relation is invalid when related to the current database https://github.com/siyuan-note/siyuan/issues/11278

This commit is contained in:
Daniel 2024-05-12 11:16:31 +08:00
parent 6af0432145
commit 8e27532c44
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -3255,7 +3255,14 @@ func UpdateAttributeViewCell(tx *Transaction, avID, keyID, rowID, cellID string,
if nil != key && av.KeyTypeRelation == key.Type && nil != key.Relation && key.Relation.IsTwoWay { if nil != key && av.KeyTypeRelation == key.Type && nil != key.Relation && key.Relation.IsTwoWay {
// 双向关联需要同时更新目标字段的值 // 双向关联需要同时更新目标字段的值
if destAv, _ := av.ParseAttributeView(key.Relation.AvID); nil != destAv { var destAv *av.AttributeView
if avID == key.Relation.AvID {
destAv = attrView
} else {
destAv, _ = av.ParseAttributeView(key.Relation.AvID)
}
if nil != destAv {
// relationChangeMode // relationChangeMode
// 0关联列值不变仅排序不影响目标值 // 0关联列值不变仅排序不影响目标值
// 1关联列值增加增加目标值 // 1关联列值增加增加目标值
@ -3307,9 +3314,11 @@ func UpdateAttributeViewCell(tx *Transaction, avID, keyID, rowID, cellID string,
} }
} }
if destAv != attrView {
av.SaveAttributeView(destAv) av.SaveAttributeView(destAv)
} }
} }
}
relatedAvIDs := av.GetSrcAvIDs(avID) relatedAvIDs := av.GetSrcAvIDs(avID)
for _, relatedAvID := range relatedAvIDs { for _, relatedAvID := range relatedAvIDs {