Skip to content

Commit ae9f654

Browse files
committed
delete upvoted reviews when deleting account
1 parent 6618094 commit ae9f654

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

app/models/review.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class Review(db.Model):
2929
upvote_count = db.Column(db.Integer, default=0) #点赞数量
3030
comment_count = db.Column(db.Integer, default=0)
3131

32-
upvote_users = db.relationship('User', secondary=review_upvotes)
32+
upvote_users = db.relationship('User', backref='upvoted_reviews', secondary=review_upvotes)
3333
comments = db.relationship('ReviewComment', backref='review', lazy='joined', order_by='ReviewComment.publish_time')
3434

3535
author = db.relationship('User', lazy='joined')

app/models/user.py

+1
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ class User(db.Model, UserMixin):
9292
backref=db.backref('followers'))
9393
# followers: backref to User
9494
# notifications: backref to Notification
95+
# upvoted_reviews: backref to Review
9596

9697
def __init__(self, username, email, password):
9798
self.username = username

tests/delete_account.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,15 @@
1212
ctx = app.test_request_context()
1313
ctx.push()
1414

15-
user = User.query.filter(User.email == sys.argv[1]).first()
15+
if sys.argv[1].isdigit():
16+
user = User.query.filter(User.id == sys.argv[1]).first()
17+
else:
18+
user = User.query.filter(User.email == sys.argv[1]).first()
1619
if not user:
17-
print('user ' + sys.argv[1] + ' not found')
20+
print('user ' + sys.argv[1] + ' not found (please use User ID or email)')
1821
sys.exit(1)
1922

23+
2024
review_count = Review.query.filter(Review.author == user).count()
2125
if review_count > 0:
2226
print(str(user) + ' has ' + str(review_count) + ' reviews')
@@ -32,6 +36,7 @@
3236
print(str(user) + ' has followed ' + str(len(user.users_following)) + ' users')
3337
print(str(user) + ' has ' + str(len(user.followers)) + ' followers')
3438
print(str(user) + ' has ' + str(len(user.notifications)) + ' notifications')
39+
print(str(user) + ' has ' + str(len(user.upvoted_reviews)) + ' upvoted reviews')
3540

3641
confirm = input('Confirm to delete user ' + str(user) + '? (y/n): ')
3742
if confirm != 'y' and confirm != 'Y':
@@ -49,6 +54,7 @@
4954
user.users_following = []
5055
user.followers = []
5156
user.notifications = []
57+
user.upvoted_reviews = []
5258

5359
user.is_deleted = True
5460
user.username = None

0 commit comments

Comments
 (0)