Django 1.7 рдореЗрдВ рд╣рдореЗрдВ рдХреМрди рд╕реА рдирдИ рдкреНрд░рддреАрдХреНрд╖рд╛ рд╣реИ

рдпрд╣ рдкреЛрд╕реНрдЯ рдкрд╛рдпрдерди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдмреАрдЪ рд▓реЛрдХрдкреНрд░рд┐рдп Django 1.7 рдврд╛рдВрдЪреЗ рдХреЗ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд░рд┐рд▓реАрдЬ рдХреЛ рд╕рдореБрджрд╛рдп рдФрд░ рдореБрдЦреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреЛрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - Django 1.0 рдХреА рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рдж рд╕реЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░рд┐рд▓реАрдЬ рдХреЗ рд░реВрдк рдореЗрдВред



рдЫрд╡рд┐





рд╕рдВрд╕реНрдХрд░рдг 1.7 рдореЗрдВ рдирд╡рд╛рдЪрд╛рд░



рдЕрдЬрдЧрд░ 2.6 рдХреЛ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реИред рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг 2.7 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдЕрдм рд╕рдорд░реНрдерд┐рдд рд╣реИред рдкрд╛рдпрдерди 3.4 рдХреЗ рд▓рд┐рдП рдШреЛрд╖рд┐рдд рд╕рдорд░реНрдердиред

рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдореВрд▓ рд╕рдорд░реНрдерди рдХреЛ рд╕реАрдзреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рд▓реЛрдХрдкреНрд░рд┐рдп рджрдХреНрд╖рд┐рдг рдмреИрдЯрд░реА рдХреЗ рд▓реЗрдЦрдХ рдПрдВрдбреНрд░рдпреВ рдЧреЙрдбрд╡рд┐рди рдХрд╛ рд╢реБрдХреНрд░рд┐рдпрд╛ рдЕрджрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



Syncdb рдХрдорд╛рдВрдб рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ Django 1.9 рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рддрдм рддрдХ, syncdb рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдирд╛рдо рд╣реИ, рдЬреЛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдФрд░ рдкреБрд░рд╛рдиреЗ syncdb рд╡реНрдпрд╡рд╣рд╛рд░ рджреЛрдиреЛрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

Init_data рдЬреБрдбрд╝рдирд╛рд░ рдЕрдм рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрд░рдВрднрд┐рдХ рдирд╣реАрдВ рд╣реИрдВред рдпрд╣ рдЦреБрдж рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд╕реНрддрд░ рдкрд░ рдлрд┐рдХреНрд╕рд┐рдВрдЧ рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИред



рдЖрд╡реЗрджрди рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ - рдкреВрд░реНрдг рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рдЕрдзреАрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдирддреАрдЬрддрди, рдЖрдк рдореЙрдбрд▓-рдереНрд░реЗрдб рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдиреЗ рдкрд╣рд▓реЗ рдЖрд╡реЗрджрди рдХреА рдкрд╣рдЪрд╛рди рдХреА рдереА рдФрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред

рдЙрдк- рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдирдП рддрд░реАрдХреЗред рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдЖрд╡рд╢реНрдпрдХ рдбрд┐рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯ () рд╡рд┐рдзрд┐ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ Django рдореЗрдВ рдкрд▓рд╛рдпрди рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рджреЛрд╖ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдорд╛рдирдХ рдХреНрд╖реЗрддреНрд░реЛрдВ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╣реИ рдФрд░ __init__ рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред



рдЕрдм рдЖрдк рд╕реАрдзреЗ рдкреНрд░рдмрдВрдзрдХ рд╕реЗ QuerySets рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



class FoodQuerySet(models.QuerySet): def pizzas(self): return self.filter(kind='pizza') def vegetarian(self): return self.filter(vegetarian=True) class Food(models.Model): kind = models.CharField(max_length=50) vegetarian = models.BooleanField() objects = FoodQuerySet.as_manager() Food.objects.pizzas().vegetarian()
      
      





рдореЙрдбрд▓ рдмрдВрдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдмрдВрдзрдХ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛:

 class Blog(models.Model): pass class Entry(models.Model): blog = models.ForeignKey(Blog) objects = models.Manager() # Default Manager entries = EntryManager() # Custom Manager b = Blog.objects.get(id=1) b.entry_set(manager='entries').all()
      
      







рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдирдИ рдкреНрд░рдгрд╛рд▓реА, (рд╕рд┐рд╕реНрдЯрдо рдЪреЗрдХ), рдЬреЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреА рд╣реИ рдФрд░ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рд╣реИред рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдпрд╛ рдЪреЗрдХ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдорд╛рдиреНрдп рдХрдорд╛рдВрдб рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред

рдЙрдиреНрдирдд рдкреНрд░реАрдлрд╝реИрдЪ_рд░реЗрдЯреЗрдб рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдкреНрд░реАрдлрд╝реИрдЪ ред рдЕрдм рдЖрдк QuerySets рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реАрдлрд╝реЗрдЯрд┐рдВрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рджрд┐рдирд╛рдВрдХ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред рдкрд╣рд▓реЗ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯрд╛рдЗрдо рдЬрд╝реЛрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрджрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдордп рдХреЗ рдмреАрдЪ рдХреЛрдИ рд╡рд┐рд╕рдВрдЧрддрд┐ рд╣реИ, рддреЛ рдПрдХ рджреГрд╢реНрдп рдкреНрд░реЙрдореНрдкреНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред



рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд░реНрд╕рд░ рдХреЛ рдЕрдм рдПрдХ рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рд╣реИ:



 c = connection.cursor() try: c.execute(...) finally: c.close()
      
      







рдУрдЖрд░рдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЦреЛрдЬ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред



 from django.db.models import IntegerField from django.db.models import Transform class AbsoluteValue(Transform): lookup_name = 'abs' def as_sql(self, qn, connection): lhs, params = qn.compile(self.lhs) return "ABS(%s)" % lhs, params IntegerField.register_lookup(AbsoluteValue) #  Experiment.objects.filter(change__abs=27) #    # SELECT ... WHERE ABS("experiments"."change") = 27
      
      







рдЕрдиреНрдп рджрд┐рд▓рдЪрд╕реНрдк рдмрджрд▓рд╛рд╡



django.contrib.admin





django.contrib.auth





django.contrib.sites





рдИ-рдореЗрд▓





рдлрд╛рдЗрд▓реЗрдВ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ





рдЖрдХрд╛рд░





рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг





рдкреНрд░рдмрдВрдзрди рджрд▓





рдЖрджрд░реНрд╢





рдЕрдиреБрд░реЛрдз рдФрд░ рдЙрддреНрддрд░



рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ





рдпрд╣ рдкреЛрд╕реНрдЯ рд╡рд┐рдХрд╛рд╕ рдХреЗ рддрд╣рдд рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рд▓реЗрдЦрди рдХреА рдПрдХ рдирд┐: рд╢реБрд▓реНрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рд╕реВрдЪрдирд╛ рдХреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред

рдЗрд╕рдореЗрдВ рдкреЛрд╕реНрдЯ рдХреЗ рд▓реЗрдЦрдХ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдФрд░ рд╡рд┐рд╕реНрддреГрдд рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдкреНрд░рд▓реЗрдЦрди рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдПрдВред



All Articles