2010-03-28 32 views
5

Tôi muốn người dùng nhận 'điểm' để hoàn thành các tác vụ khác nhau trong ứng dụng của tôi - từ các tác vụ như gắn thẻ các đối tượng để kết bạn. Tôi chưa tìm thấy một ứng dụng Django đơn giản hóa điều này.Cơ chế trò chơi xã hội ở Django

Hiện tại, tôi nghĩ rằng cách tốt nhất để tích lũy điểm là mỗi hành động của người dùng tạo tương đương với "mục dòng" và các điểm được tính bằng cách tính giá trị của từng hành động được xuất bản lên luồng của họ.

Rõ ràng là cơ chế trò chơi xã hội là một lĩnh vực rất lớn với rất nhiều nghiên cứu đang diễn ra tại thời điểm này. Nhưng từ góc độ phát triển, cách dễ nhất để bắt đầu là gì? Tôi đang đi sai đường hay có cách nào tốt hơn/đơn giản hơn?

Edit: cho bất cứ ai muốn có một thực hiện rất đơn giản này:

Đối với bất cứ ai mà sẽ quan tâm đến việc thực hiện rất đơn giản của ý tưởng này cố gắng tạo ra một ứng dụng "đăng nhập" và đặt này trong models.py của bạn :

log_models = [Tag, Post, Vote] 

class Point(models.Model): 
    # model fields 

def increase_score(sender, instance, signal, *args, **kwargs): 
    # score logic 

for model in log_models: 
    post_save.connect(increase_score, sender=model) 
    post_delete.connect(decrease_score, sender=model) 

tham khảo doc này nếu bạn tìm post_save được phát ra hai lần: http://code.djangoproject.com/wiki/Signals#Helppost_saveseemstobeemittedtwiceforeachsave

Trả lời

2

"mục Stream"? Chưa từng nghe điều đó trước đây.

"Nhật ký" có ý nghĩa. Có vẻ như bạn sẽ ghi lại các sự kiện trong một bảng. Tổng hoặc đếm các sự kiện đã đăng nhập. Đó là cách đơn giản nhất và có thể mở rộng nhất.

Bạn có thể tóm tắt định kỳ (hàng giờ cho đám đông xã hội lớn, hàng ngày cho đám đông nhỏ).

Các vấn đề liên quan