К списку категорий

  •   К шагу 52. Концепция форм Django. Что внутри?




  •   Описание

    Рассмотрим концепции форм, что бы для нас не было никакой магии.

    Задача 1. Понять откдуда и как Джанго рождает формы.

    Задача 2. Сразу же уяснить на будущее, что в справке описано только основное. Это я к тому, что многие говорят об ограничении Джанго.

    Взгляните на код ниже. Как можно снять все ограничения, конечно же нужно знать Paython. Задачу два мы не будем решать в полном объёме, но вы должны знать, что возможностей у вас столько на сколько хватит вашего творчества.

    перейти к шагу 52.



      Статья

    Когда мы начали изучать формы, конечно можно было бы
    просто смотреть справку, но мы не получим 
    ответов на свои вопросы о концепциях форм в джанго.

    Именно поэтому я и записал этот курс, который выходит
    за рамки Django документации, а больше относится к 
    Python.

    Мы с вами создали простую форму и выяснили три важные вещи.

    Django формы:

    - Это обычный объект Python;
    - Мы увидели. как Django forms формирует html;
    - как за кулисами происходит проверка форм.

    Вы скажете зачем так подробно?

    Концепция очень важна.

    Это то от чего мы отталкиватся будем в будущем.

    Понимая. что форма это класс Python? мы автоматически можем применять
    к формам ООП.
    Тогда уходит вся таинственность и магия и всё становится на свои места.

    В процессе курса мы проверяем а действительно ли Django формы
    это обычные классы python, а действительно ли они ведут себя, как объекты в классах, автоматическиможем ли мы 
    обращаться к ним, средствами Python?

    Это важно понять сейчас, будет поводом изучить классы или подтянуть кто не знает,
    и в конце концов понимать, что нет никакой магии, Django forms - обычные классы 
    Python.

    Есть начало, а за развитием дело не станет.

    И тот кто пишет, что для изучения Django Python не нужно знать,
    это опрометчиво. Не волнуйтесь, кто не знает Python, он его выучит
    в нашей школе, изложен простым языком.

     



      Код



    forms.py

    Формы можно писать по разному

    
    
    from django import forms
    
    # Простой вариант
    class ConceptForm(forms.Form):
            title = forms.CharField(max_length=200)
    
    # Вариант, творческий
    class ConceptForm(forms.Form):
        def __init__(self, *args, **kwargs):
            super(self).__init__(*args, **kwargs)
            self.fields['title'].help_text = 'es'
    
         





      Рекомендации

    Узнать больше в ленте Twitter и подписаться на Ютуб, получать новые видео.



    Справка Django - это только начало. Возможностей намного, намного больше.

     

    Сообщение в группу, что бы понять, а зачем так подробно изучать?

     

     

     

     Шаг 52. Концепция Django форм.

     
     
    Как вы видите к Джанго формам мы подходим очень серьёзно.
    Я вообще не видел в интернет (в рунете, подробные подходы), всё есть только на западе.
     
    То, что касается заполнение пользователем с сайта, будем изучать под микроскопом.
     
    Не нужно расстраиваться, если будет пока не понятно, зачем мы используем Django shell,
    мы закладываем основу на будущее, всё станет на места позже.
     
    Прошу не расстраиваться, до меня это дошло через пару лет.
    Думаю к вам придёт позже.
     
    Сегодня я только приведу аргументы.
     
    Нашей целью было понять, что Джанго формы это обычные классы и ведут себя. как классы.
     
    Справедливый вопрос будет поставлен, перед начинающим, а нужно ли так глубоко, тем более этого вообще в справке нет?
     
    Нужно.
     
    Нужно.
     
    Нужно.
     
    Нужно хотя бы знать, что возможности больше. 
     
    Причина 1.
    Когда вы начнёте делать большие проекты, вы будете постоянно добавлять и изменять модели и формы начнут отставать.
    И тогда вы вспомните, что бы никогда не получать ошибок и быть уверенным. что ваш код не глюканет,вспомните про то, что я говорил.
     
    Пример со справки:
     
    # myapp/forms.py
    from django import forms
    
    from .models import MyModel
    
    class MyModelForm(forms.ModelForm):
    
        name = forms.CharField(max_length=100, required=True)
        age = forms.IntegerField(required=True)
        profession = forms.CharField(required=True)
        bio = forms.TextField(required=True)
    
        class Meta:
            model = MyModel
     
    Продвинутый код.
     
     
    from django import forms
    
    from .models import MyModel
    
    class MyModelForm(forms.ModelForm):
    
        def __init__(self, *args, **kwargs):
            super(MyModelForm, self).__init__(*args, **kwargs)
            # Making name required
            self.fields['name'].required = True
            self.fields['age'].required = True
            self.fields['bio'].required = True
            self.fields['profession'].required = True
    
        class Meta:
            model = MyModel
     
     
    Второй вариант, написал и забыл, железно будет работать лучше любых швейцарских часов.
     
     
     
    Причина 2. Придёт время, когда каждый мб. сервера вы будете беречь. Когда Мы пишем стандартным способом, Джанго будет проводить проверку по всем критериям. Когда мы переопределяем, мы указываем только нужные нам проверки. 
     
     

    Не нужно переживать. Пока будет не очень понятно, особенно для тех кто недавно столкнулся с пайтон. 

     

    Многое сейчас может быть не очень понятно.

    Но у меня свои мотивы:

    1. Выбросьте с головы, что для Джанго не нужно знать пайтон? для многих это будет 

    пониманием. что Пайтон нужно и важно подтягивать.

     

    2. Как я говорил, скоро появится приложение, которое сможет добавлять любой участник проекта, где мы будем собирать лучший код. (и много других вещей, каждая в своё время).

     

    3. Шаг за шагом мы ростём, нужно поспешать медленно. И важно сейчас показать, что справка Джанго это всего лишь вершина, а возможности безграничны.

     
     
     
    Каждый должен знать, как правило в большинстве проек то это не нужно.
    Но уже если понадобится, то это будет крутой код.
     
     
     
     
     
     
     
     
     

     



    2015-05-27 11:08:00+00:00



    К списку категорий