Специальная, подарочная акция получения доступа к Django4!
Как, я, начал код писать в Python? Смотрите, если уперлись и ничего не получается.
План я написал, но прежде чем вплотную перейти к формам, подготовим профессиональную почву.
Нам нужно посмотреть на API опять с позиции исходного кода и научится в API различать методы и аргументы, опять же разобраться что где будем применять и дальше мы пройдём по всем пунктам документации собирая до кучи все к API.
filds
def __init__(self, *, required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=(), localize=False, disabled=False, label_suffix=None):
form
# argumetns def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=ErrorList, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None):
Проработать документацию.
Создать форму.
Отработать API.
Разделить в голове аргументы и методы:
аргументы в полях использовать. (в полях не забыть про виджеты) методы использовать в представлениях. написать представление для формы (обратить внимание на загрузкук файлов.)
Формы из моделей.
media контент.
Тонкости(настройки) формы из моделей. (это наше основное)
class ContactForm(forms.Form): subject = forms.CharField(max_length=100) message = forms.CharField(widget=forms.Textarea) sender = forms.EmailField() cc_myself = forms.BooleanField(required=False)
Formset - домашнее задание.
Напишем простенький класс, что бы напомнить себе Пайтон основы, нас интересует момент при передаче аргументов параметрам.
-
__init__
forms
fields
```python
def init(self, data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=ErrorList, label_suffix=None, empty_permitted=False, field_order=None, use_required_attribute=None, renderer=None):
class Form: def __init__(self, *, arg2=None, arg1=True): self.arg1 = arg1 self.arg2 = arg2 def is_valid(self): pass form = Form(arg2 = "11", arg1 =False) # arg1='str1', arg2="str2" #help(Form) #type(form) #dir(Form) #form.__dict__ #id(form)
Мы б конечно могли просто работать в jupyter notebook, но думаю будет лучше, если мы напишем форму реальную в файле - это нам даст и работать с jupyter и писать представления и реально добавлять аргументы полей. так все в голове надёжно соберём.
Не забыли нашу цель, уверенно пользоваться документацией.
Более чем за 10 лет работы с Джанго, я практически не видел, что бы программисты писали методы в формах, все отдано в представление.
на самом деле можно задать абсолютно любые условия в форме и проверить их.
Но ведь это и так вроде бы понятно, так как форма - это прежде всего класс Пайтон, а класс поддерживает методы.
Это очень круто! Давайте научимся.
Мы создали форму, как в документации Джанго(что б вам легче было прорабатывать), для отправки сообщений.
Прежде чем начать работать с API. давайте напишем представление и шаблон и реально отправим почту, как раз познакомитесь ещё с одной библиотекой Джанго email.
А потом уже приступим к детальной отработке API и будем коверкать нашу форму.
< 1 2 3 4 ... 7 8 9 >