№1 Практическая онлайн-школа обучения языкам программирования Python (Django), JavaScript, Kotlin В. Бовсуновского.

Специальная, подарочная акция получения доступа к Django4!

Как, я, начал код писать в Python? Смотрите, если уперлись и ничего не получается.

2. Настроим pytest для работы с Django 4.

Теперь нам нужно прописать настройки, что бы pytest видел наш проект и другие мелочи учесть, что бы все работало. Давайте сделаем это.

Перейти к уроку

3. Напишем первый тест для нашего проекта на Django4.

Обратите внимание, я специально буду пропускать много, что бы вылазило, как можно больше исключений. Думаю с курса Джанго вы уже многие исключения изучили. Это прекрасная практика, продолжим её и далее.

Мы создадим первый тест и как вы увидите даже пару строк нам дадаут кучу размышлений.

В следующих уроках подробно разберём. что тестируется в Джанго, а что нет.

Сейчас я объясню относительно того, что мы будем делать.

Давайте создадим первый тест, а после будем писать проект и делать по ходу проекта тесты - это лучший вариант.

-

params = ['article1', None, '2021-12-28 10:42:45.568426', '2021-12-28 10:42:45.568607', None, '', ...]

    def execute(self, query, params=None):
        if params is None:
            return Database.Cursor.execute(self, query)
        query = self.convert_query(query)
>       return Database.Cursor.execute(self, query, params)
E       django.db.utils.IntegrityError: NOT NULL constraint failed: blog_post.author_id

/home/agate/Env/practice_djangoEnv/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py:416: IntegrityError
--------- Captured stderr setup ----------
Creating test database for alias 'default'...
-------- Captured stderr teardown --------
Destroying test database for alias 'default'...
======== short test summary info =========
FAILED test_models.py::test_title_create
=========== 1 failed in 0.77s ============

Перейти к уроку

4. Домашнее задание по тестам.

Мы с вами создали первый тест, сейчас вам нужен мозговой штурм. Вам необходимо завершить тест и сбросить в группу. Что сделать рассказал в видео.

Запоминаем принцип. НЕ бегите с вопросом через пять минут, если что-то не получается. Нормально порыть 5 полных рабочих дней. если тогда не получается, тогда уже спрашивать.

Как правило 98% вопросов решается, в остатке вы имеете настоящий опыт и знание вопроса.

Перейти к уроку

5. Изменим нашу модель и поймём логику.

Я предварительно допустил ошибки логики в модели, сделал это специально, что бы вернуться к редактированию позже. Лучше один раз показать, чем много раз рассказывать.

#

class Post(models.Model):

    ....................

    likes_post = models.ManyToManyField(User, related_name='post_likes', blank=True, verbose_name='Лайки')
    
    saves_posts = models.ManyToManyField(User, related_name="blog_posts_save", blank=True, verbose_name='Сохранённые посты пользователя')

    def total_likes_post(self):
        return self.likes.count()
    
    def total_saves_posts(self):
        return self.saves_posts.count()

    ...........

Перейти к уроку

6. Создадим представление для формы и подробно объясним.

Наверное слишком перегруженный урок информацией, так нужно было.

Формы мы изучим подробнее, чуть далее, сейчас важно понять, как создавать форму из класса и понять суть метода is_valid(), проверки данных формы.

Не пугайтесь богатого объяснения, все станет на места скоро, совсем скоро.

Перейти к уроку