django- рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдорддрджрд╛рди рдЫрдБрдЯрд╛рдИ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдЗрд╕ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА:
django-voting рдЖрдкрдХреЛ рдЕрдзрд┐рдХрддрдо 30 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП digg рд╕рд┐рджреНрдзрд╛рдВрдд (+ 1 / -1) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рд╕реА рднреА рдЗрдХрд╛рдИ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ JS рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╕рд╣рд┐рдд)ред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрдерд▓: django-voting.googlecode.com

рд▓реЗрдХрд┐рди рдПрдХ рдмреБрд░реА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ: рдорд╛рдирдХ ORM рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реЗрдЯрд┐рдВрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ред рдЕрдЧрд▓рд╛, рдореИрдВ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд░реЗрдЯрд┐рдВрдЧ рдХреНрд╡реЗрд░реА рджреНрд╡рд╛рд░рд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИ:
 SUM (рд╡реЛрдЯ) рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рд╡реЛрдЯреЛрдВ рд╕реЗ рдХрд╣рд╛рдВ рд╕реЗ content_type_id =?  рдФрд░ object_id =? 
рдЬрд╣рд╛рдВ рдкреНрд░рдХрд╛рд░ рдЖрдИрдбреА (рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░) рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдИрдбреА рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдмреЗрд╢рдХ, рдЖрдк рд╕рд┐рд░ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
  рдЕрдиреБрдЪреНрдЫреЗрджред 
рд▓реЗрдХрд┐рди рдпрд╣, IMHO, рдереЛрдбрд╝рд╛ рд▓рдВрдмрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдкрдХреЛ рдХрдИ рдмрд╛рд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

"рдХрдИ рдмрд╛рд░" рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдкреНрд░рддреАрдХ рд╣реИ ... рдХрд╣рддреЗ рд╣реИрдВ, Article.objects рдкреНрд░рдмрдВрдзрдХ рд╣реИред рдпрд╣ рдЬрд╛рдирддреЗ рд╣реБрдП рднреА, рдЖрдк рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд▓рд┐рдЦ тАЛтАЛрд╕рдХрддреЗ рд╣реИрдВред рдПрдХрдорд╛рддреНрд░ рдкреНрд░рд╢реНрди рдпрд╣ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдк рдЖрдИрдбреА рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП? рдпрд╣ contenttype рдврд╛рдВрдЪреЗ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдмрдВрдзрдХ рдХреЛрдб рд▓рд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ:
  рд╡рд░реНрдЧ рд╕реНрдХреЛрд░рдСрд░реНрдбрд░ рдореИрдирдЬрд░ (рдореЙрдбрд▓.рдордирдЧрд░):
     def select_score (рд╕реЗрд▓реНрдл):
         "" "рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдорддрджрд╛рди рдкрд░рд┐рдгрд╛рдо рдЪреБрдиреЗрдВ" "
         django.contrib.contenttypes.models рд╕реЗ ContentType рдЖрдпрд╛рдд рдХрд░реЗрдВ
         model_type = ContentType.objects.get_for_model (self.model)
         table_name = self.model._meta.db_table
         рд╕реНрд╡рдВрдп рд╕реНрд╡рджреЗрд╢ рд▓реМрдЯреЗрдВ (рдЪрдпрди рдХрд░реЗрдВ = {'рд╕реНрдХреЛрд░': 'SUM (рд╡реЛрдЯ) рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ) рд╡реЛрдЯреЛрдВ рд╕реЗ рдЬрд╣рд╛рдВ рд╕рд╛рдордЧреНрд░реА_type_id =% i рдФрд░ object_id =% s.id'% (int (model_type.id), table_name)}) 
рдЕрдЧрд▓рд╛, рд╣рдо рдкреНрд░рдмрдВрдзрдХ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдмрд╕ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ (рдЖрдк рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) рдореВрд▓реНрдп = рдкреНрд░рдмрдВрдзрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рдеред
  рдХрдХреНрд╖рд╛ рд▓реЗрдЦ:
     рд╢реАрд░реНрд╖рдХ = рдореЙрдбрд▓ред рдЪрд░рдлрд┐рд▓реНрдб (рдЕрдзрд┐рдХрддрдо_ рдЧрддрд┐ = реирежреж)
     ...
     mymanager = рд╕реНрдХреЛрд░рд░ рдкреНрд░рдмрдВрдзрдХ () 
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдм рдХреБрдЫ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

  Article.mymanager.select_score ()ред Order_by ('- рд╕реНрдХреЛрд░') 
рдПрдХрдорд╛рддреНрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИ select_score рдХреЛ рд╕реАрдзреЗ рдкреНрд░рдмрдВрдзрдХ рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред QuerySet рдХреЗ рдкрд╛рд╕ рдпрд╣ рдЧреБрдг рдирд╣реАрдВ рд╣реИред (рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд╕реБрдЭрд╛рд╡ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░)



рдореВрд▓: " django- рд╡реЛрдЯрд┐рдВрдЧ рд░реЗрдЯрд┐рдВрдЧ рдЫрдБрдЯрд╛рдИ "



PS> рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, Google рдХреЛрдб рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд django- * рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реЛрддреЗ рд╣реИрдВред рдореИрдВ рдЙрдиреНрд╣реЗрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рджреЗрдЦреЗрдВ, рдмрд╣реБрдд рд╕рд╛рд░реА рдКрд░реНрдЬрд╛ рдмрдЪрд╛рдПрдВред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЦреЛрдЬрд╛ рдерд╛ред



All Articles