Django

2010-03-28 14 views
5

में सोशल गेम मैकेनिक्स मैं चाहता हूं कि उपयोगकर्ता अपने आवेदन में विभिन्न कार्यों को पूरा करने के लिए 'अंक' प्राप्त करें - जैसे कि टैगिंग ऑब्जेक्ट्स जैसे दोस्तों को बनाने के लिए। मुझे अभी तक एक Django एप्लिकेशन नहीं मिला है जो इसे सरल बनाता है।Django

फिलहाल मैं सोच रहा हूं कि अंक एकत्र करने का सबसे अच्छा तरीका यह है कि प्रत्येक उपयोगकर्ता क्रिया "स्ट्रीम आइटम" के बराबर बनाती है, और अंक उनकी स्ट्रीम में प्रकाशित प्रत्येक क्रिया के मूल्य की गणना के माध्यम से गणना की जाती है।

स्पष्ट रूप से सामाजिक गेम यांत्रिकी एक विशाल क्षेत्र है जिसमें इस समय बहुत सारे शोध चल रहे हैं। लेकिन एक विकास परिप्रेक्ष्य से शुरू करने का सबसे आसान तरीका क्या है? क्या मैं गलत ट्रैक पर हूं या बेहतर/सरल तरीके हैं?

संपादित करें: किसी को भी इस का एक बहुत ही सरल कार्यान्वयन चाहता है के लिए:

किसी को भी है कि इस विचार का एक बहुत ही सरल कार्यान्वयन में रुचि होगी एक "प्रवेश" अनुप्रयोग बनाने और अपने models.py में इस डाल कोशिश के लिए : http://code.djangoproject.com/wiki/Signals#Helppost_saveseemstobeemittedtwiceforeachsave

उत्तर

2

"स्ट्रीम आइटम":

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) 

यदि आप पाते हैं कि post_save दो बार उत्सर्जित करती है इस डॉक का संदर्भ लें? पहले कभी नहीं सुना है।

"लॉग" समझ में आता है। ऐसा लगता है कि आप एक टेबल में घटनाओं को लॉग करने जा रहे हैं। लॉग इन घटनाओं को योग या गिनें। यह सबसे सरल और सबसे एक्स्टेंसिबल है।

आप समय-समय पर सारांशित कर सकते हैं (बड़ी सामाजिक भीड़ के लिए प्रति घंटा, छोटी भीड़ के लिए प्रतिदिन)।