Задать вопрос
Ответы пользователя по тегу Django
  • Как зарегистрировать новый объект User в расширенную модель MyUser при помощи CreateView?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Если я правильно понял задачу, то как то так:
    # MyUser
    from django.contrib.auth.models import AbstractUser
    from django.db import models
    
    class MyUser(AbstractUser):
        # ...
        class Meta:
            swappable = 'AUTH_USER_MODEL'

    # MyUserCreationForm
    from django import forms
    from django.contrib.auth.forms import UserCreationForm
    from .models import MyUser
    
    class MyUserCreationForm(UserCreationForm):
        class Meta:
            model = MyUser
            fields = ('username', 'password1', '...')

    # view
    from django.urls import reverse_lazy
    from django.views.generic.edit import CreateView
    from .forms import MyUserCreationForm
    from .models import MyUser
    
    class MyUserCreateView(CreateView):
        model = MyUser
        form_class = MyUserCreationForm
        template_name = 'registration/registration_form.html'
        success_url = reverse_lazy('blog:index')

    # urls
    from django.urls import path, include
    from .views import MyUserCreateView
    
    urlpatterns = [
        path('auth/', include('django.contrib.auth.urls')),
        path('auth/registration/', MyUserCreateView.as_view(), name='registration'),
    ]
    Ответ написан
    1 комментарий
  • Как лучше сделать поле в models для нескольких файлов?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Или есть какое-нибудь другое решение?

    Для Вашей задачи можно использовать сигнал post_delete, чтобы автоматически удалять связанные файлы из модели File, когда удаляется объект модели Question.
    Ответ написан
    Комментировать
  • Возможно ли засунуть django в сайт написанный на bitrix 1c?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно ли засунуть django в сайт написанный на bitrix 1c?

    Возможно. Нужно ли? - нет.
    Ответ написан
    Комментировать
  • Как вывести сумму по колонке в джанго?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Примерно так (импорты и наименование в бд свои пропишите):
    from django.db.models import Sum
    from .models import Raschet
    
    # counter
    count = Raschet.objects.aggregate(total=Sum('summa'))['total']
    Ответ написан
    6 комментариев
  • В каком визуальном редакторе создавать формы для Django с динамическим размером полей и шрифтов?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Ответ написан
    Комментировать
  • Как написать мобильное приложение?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно ли написать бекенд для мобильного приложения на андроид и iOS на Django Python?

    Возможно.
    Если да, то что нужно для этого поизучать

    Все тоже самое, что и для разработки бэка для любого другого проекта.
    и на чем писать фронтенд для мобильного приложения?

    На чем умеете, но вот список от простого к сложному:
    - React Native.
    - Flutter.
    - Kotlin/Swift.
    Ответ написан
    1 комментарий
  • Как выполнить консольную команду из подкаталога?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    В Django каждая консольная команда должна быть модулем, который располагается в определенной структуре каталогов, чтобы Django мог его обнаружить и зарегистрировать.

    Если прям жмет, то можно разместить __init__.py в каждом каталоге до консольной команды, с импортом вида:
    from .command1 import Command1
    
    # app/
    #    management/
    #        __init__.py <-- this import
    #        commands/
    #            __init__.py <-- and this import
    #                command1/
    #                    __init__.py <-- and this import

    Это позволит Django обнаруживать команды, находящиеся в подкаталогах, но при этом требует, чтобы каждая команда была в своем собственном подкаталоге и имела собственный __init__.py.

    Кстати, имя команды которое Вы используете при вызове manage.py, должно соответствовать имени каталога, в котором находится команда. Соответственно, если Вы разместили команду в app/management/commands/subdir1/command1, Вы всё равно вызываете её как manage.py command1, не указывая subdir1. Django не поддерживает вызов команд с использованием точечной нотации для обозначения подкаталогов, как в Вашем примере subdir1.command1.
    Ответ написан
    Комментировать
  • Dango vs Spring Boot для веб-приложения. Что выбрать?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Хочу написать тяжелое веб-приложение.

    Круг пользователей не более двух тысяч человек.

    Что означают все эти буквы в цифрах? Сколько rps в пике ожидается?
    Если определить это не так легко, то хотя бы какие критерии для сравнения необходимо учитывать

    - Знание конкретного ЯП и его фреймворка.
    - Более быструю скорость разработки на Python и растущую сложность поддержки в процессе роста проекта из за своей скриптовой сущности Python.
    - Производительность Python>Django.
    Ответ написан
    Комментировать
  • Что используют чаще?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    а что из этого будет чаще использоваться в проектах и/или на работе

    Что скажет teamlead, то и будет использоваться. Если Вы не знаете ответа, то использовать - встроенные валидаторы.
    Ответ написан
    Комментировать
  • Как применять разные настройки Django в зависимости откуда был запрос?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как с помощью джанго на бэке вычислять из какого домена был послан запрос и в зависимости от ответа применять те или иные настройки?

    Как вариант, можно создать новый класс в middleware с проверкой источника запроса и использованием другого конфига по условию. В wsgi.py (если используется wsgi) пишем примерно так:
    class CustomMiddleware:
        def __init__(self, get_response):
            self.get_response = get_response
    
        def __call__(self, request):
            d = request.get_host().split(':')[0]
    
            if d == 'www.prod.com':
                settings = importlib.import_module('project.config_prod')
            elif d == 'www.test.com':
                settings = importlib.import_module('project.config_test')
            else:
                settings = importlib.import_module('project.config')
    
            request.settings = settings
    
            response = self.get_response(request)
            return response

    Django не рекомендует изменять настройки в рантайме (после запуска Django), так как это может привести к нестабильной работе и непредсказуемым результатам, особенно в многопоточной среде. А так же, импортирование разных настроек внутри middleware не обязательно повлияет на уже инициализированные компоненты Django, такие как модели, представления и т.д., так как большинство настроек читается Django один раз при запуске.
    Ответ написан
  • Что выбрать WP или Python+Django для сайта?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Короткий ответ (с учетом указанного ТЗ) - WP.

    Длинный ответ:
    публиковать страницы, создавать иерархию страниц, чпу url, какой то слайдер с картинками

    Учитывая типовое ТЗ, ответ - WP (все это уже реализовано, преимущественно бесплатно и в большом количестве).
    небольшое количество услуги в регионе

    Вы на старте выхода в интернет, предположу, что количество оказываемых услуг оффлайн - будет примерно равнозначно количеству оказываемых услуг онлайн, а значит производительность инструмента не первостепенна, ответ - WP.
    Нашли компанию, предлагает разработку сайта на WP или на Python+Django (дороже и дольше)

    Начнем с того, что это не равнозначные инструмент, ибо WP - это готовый движок/CMS для сайта + сам сайт (готовые шаблоны), развернул на хостинге и готово. А вот Django - это фреймворк, т.е. некий набор инструментов, да он позволяет сделать из него что угодно (ах*енно сделать (на правах отвечающего)), но потом. Соответственно, если вопроса в функционале и производительности не стоит (и предположу - сделать быстро) - выбираем WP, будет дешевле и быстрее.

    Что обычно я использую (от начального проекта к финальному):
    1. WP в стоке + сборка фронта (webpack) с оптимизацией + кэширование.
    2. Докупка железа и горизонтальное масштабирование п1 балансировщиком.
    3. Профилирование и переписывание определенных запросов под конкретные задачи в самом WP, обычно добавляет производительности в 2-3 раза (от wp там мало что остается, но ценник и сроки еще не такие, как в п4).
    4. Python + Django + кэширование (если нужно быстрее любого WP и более специфический функционал).
    5. П4 + FastAPI (если прям совсем прижало по производительности).
    Ответ написан
    6 комментариев
  • Не подгружаются javascript при DEBUG = False, что делать?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Не подгружаются javascript при DEBUG = False, что делать?

    https://www.digitalocean.com/community/tutorials/w...
    - При DEBUG = True - Django автоматически обслуживает статические файлы (JavaScript, CSS, изображения и т.д.) напрямую через встроенный сервер. Это упрощает процесс разработки, поскольку не требует дополнительной настройки веб-сервера для обслуживания статических файлов. Изменения в статических файлах отображаются немедленно (hot reload), что позволяет быстро тестировать изменения без необходимости перезапускать сервер или собирать статические файлы.
    - При DEBUG = False - Django не обслуживает статические файлы напрямую. Вместо этого предполагается, что статические файлы будут обслуживаться через специализированный веб-сервер (Nginx, Apache), что является более оптимальным с точки зрения производительности и безопасности. Для сборки статики рекомендуется использовать команду $ python manage.py collectstatic. На выходе получится приблизительно следующая схема: Django <-> Static <-> Client.

    Уточню, что шаблоны Django не "собираются" в одно место, как статические файлы. Вместо этого, они обрабатываются динамически сервером Django, каждый раз при обработке запроса. Django заполняет шаблоны соответствующими данными и генерирует>возвращает html клиенту.
    Ответ написан
    Комментировать
  • Почему не могу словить чекбокс из шаблона в представлении?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting

    form method="post"

    а в этом представлении не могу его словить:


    def make_qr_connection_request(request, code):
        if request.method == 'GET':


    Отправляем POSTом, а условие пишем на GET, давайте все таки определимся, предлагаю так:
    def make_qr_connection_request(request, code):
        if request.method == 'POST':

    И еще, Ваша форма шлет запрос на make_connection_request, разумеется Вы ничего не поймаете в make_qr_connection_request (посмотрите на наименования). Вам нужно либо создать 2 формы с разными:
    <form method="post" id="connectRoomForm" action="{% url 'make_connection_request' %}" >
    <form method="post" id="connectRoomForm" action="{% url 'make_qr_connection_request' %}" >

    либо написать js, который сможет слать формы сразу по 2 адресам.
    Ответ написан
    4 комментария
  • Почему Django не видит static файлы? Выдает «GET /путь/ 404». В чем может быть проблема?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    # STATICFILES_DIRD = [os.path. join(BASE_DIR, 'static')]
    STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

    Результат?
    Ответ написан
  • Как разделить отображение видеопотоков после yolo в Джанго?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Грубо говоря, необходимо сделать "видеостену" в Джанго, на которой бы выводились потоки со всех камер.

    Как минимум, видеопоток нужно выводить по отдельности:
    <div>
        <img src="{% url 'stream_1' %}" alt="Stream 1" width="1024" height="768"/>
        <img src="{% url 'stream_2' %}" alt="Stream 2" width="1024" height="768"/>
    </div>

    Затем нужно модифицировать функцию video_stream так, чтобы она обрабатывала отдельные видеопотоки.
    Затем, необходимо модифицировать функцию с маршрутами urls.py, чтобы мы имели несколько маршрутов, например:
    path('video/stream_1/', views.video_stream, {'camera_id': 0}, name='stream_1'),
    path('video/stream_2/', views.video_stream, {'camera_id': 1}, name='stream_2'),
    Ответ написан
  • Почему вылетает ошибка об отсутствии модуля validators?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Импорты корректны?:
    from .validators import validate_even
    А эти?:
    from django.core.exceptions import ValidationError
    from django.utils.translation import gettext_lazy as _

    Вас не смущает условие?:
    # models.IntegerField('Оценка продукта', validators=[validate_even])
    if value != range(1,6)
    Ответ написан
    Комментировать