Ответы пользователя по тегу Django
  • Как выводить динамически картинки в модальном окне?

    @blazer05 Автор вопроса
    В общем сделал так
    <a href="#" data-toggle="modal" data-target=".dialog{{ forloop.counter }}">

    и в модальном окне
    <div class="modal fade dialog{{ forloop.counter }}" tabindex="-1">

    все заработало!
    Ответ написан
    Комментировать
  • Как добавить Django Simple Captcha в шаблон?

    @blazer05
    Прикрутил эту капчу на сайте все работает нормально. Один вопрос, при ошибочном вводе капчи выводится "Неверный ответ" где это зарыто, хочу это исправить на что-то свое но не могу найти где оно записано блин?
    Ответ написан
    Комментировать
  • Получить slug в children mptt?

    @blazer05
    Я так делал
    {% recursetree categories %}
                                <!-- блок аккордеон -->
                                <div class="accordion">
                                    <section class="accordion_item">
                                        <h3 class="title_block"><strong>{{ node.name }}</strong></h3>
                                        {% if not node.is_leaf_node %}
                                            {% for child in node.children.all %}
                                                <div class="info"><hr>
                                                    <ul>
                                                        <li class="info_item"><a href="{% url 'shop:catlist' child.slug %}"><u>{{ child.name }}</u></a></li>
                                                    </ul>
                                                    {% recursetree child.children.all %}
                                                        <ul>
                                                            <li class="info"><a href="{% url 'shop:shop-list' node.slug %}">{{ node.name }}</a></li>
                                                        </ul>
                                                    {% endrecursetree %}
                                                </div>
                                            {% endfor %}
                                        {% endif %}
                                    </section>
                                </div>
                                <!-- конец блока аккордеон -->
                            {% endrecursetree %}
    Ответ написан
    1 комментарий
  • Как сделать смену картинки при клике?

    @blazer05 Автор вопроса
    Сам отвечу на свой вопрос, может кому то пригодится.
    Подсказали на другом форуме. Можно сделать через этот яваскрипт
    <script type="text/javascript">
     var img = document.getElementById("display-1").getElementsByTagName("img")[0]; //получаем большую картинку.
     function changeIMG(str){
        img.setAttribute('src', str);
     }
    </script>

    на <a> повесить обработчик onclick = "changeIMG('/новый адрес для картинки/')"

    Все работает, картинки меняет так как нужно было.
    Ответ написан
    Комментировать
  • Как пднять два сайта на одном хостинге?

    @blazer05 Автор вопроса
    В общем победил я эту проблему! Сейчас у меня на одной виртуальной машине работают два сайта один под вторым питоном и другой под третьим питоном!

    В общем решение такое. В nano /etc/rc.local я изменил строку запуска императора, было /usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals --uid www-data --gid www-data --master
    стало
    /usr/bin/uwsgi --emperor /etc/uwsgi/vassals --uid www-data --gid www-data --master
    Далее в скрипте запуска первого сайта на втором питоне я зашел под созданным пользователем django и добавил путь до плагина второго питона plugin = python

    Далее в скрипте запуска второго сайта на третьем питоне я зашел под созданным пользователем shop и добавил путь к плагину третьего питона plugins = python3

    В отдельном окне консоли запустил императора
    /usr/bin/uwsgi --emperor /etc/uwsgi/vassals --uid www-data --gid www-data --master

    В /tmp/ сокеты двух сайтов поднялись и сайта заработали. Далее перезагружал 5 раз виртуальную машину сайты поднимались автоматом!

    sim3x спасибо за помощь!
    Ответ написан
    Комментировать
  • Как настроить .htaccess на django?

    @blazer05 Автор вопроса
    AddHandler wsgi-script .wsgi
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /django.wsgi/$1 [QSA,PT,L]

    в файле settings.py добавьте это
    # Редирект на https://
    SECURE_SSL_REDIRECT = True
    Ответ написан
    1 комментарий
  • Не могу запустить джанго на хостинге?

    @blazer05 Автор вопроса
    сделал, создал другое приложение и все заработало!
    Ответ написан
    Комментировать
  • Ошибка 1050 при выполнении migrate?

    @blazer05 Автор вопроса
    Решение проблемы.
    1. Удалите из папки migrations вашего приложения все миграции кроме __init__.py а также удалите в базе данных в таблице django_migrations все миграции относящиеся к вашему приложению и удалите саму таблицу для которой не проходят миграции.

    2. В настройках базы данных в файле settings.py сделайте так и выполните миграции заново.

    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': '',
    'USER': '',
    'PASSWORD': '',
    'OPTIONS': {
    "init_command": "SET storage_engine=MYISAM",
    }
    }
    },

    У меня после этого таблица создалась заново и без проблем я смог в нее добавлять и удалять данные!
    Огромное спасибо этому человеку Viteran33 за помощь в моем вопросе!
    Ответ написан
    Комментировать
  • Форма не отправляет на почту сообщение?

    @blazer05 Автор вопроса
    Ребята, переписал по другому форму обратной связи без сохранения в базу данных и она работает! Посмотрите пожалуйста не рабочий код и рабочий в чем ошибка у меня?
    Вот рабочий код.
    forms.py
    # -*- coding: UTF-8 -*-
    from django import forms
    #from django.forms import ModelForm
    # from mystudio.models import MailBox
    
    class ContactForm(forms.Form):
        subject = forms.CharField(max_length=100)
        sender = forms.EmailField()
        #phone = forms.CharField(max_length=15)
        message = forms.CharField()
        copy = forms.BooleanField(required=False)

    views.py
    def contact(reguest):
        if reguest.method == 'POST':
            form = ContactForm(reguest.POST)
            # Если форма заполнена корректно, сохраняем все введённые пользователем значения
            if form.is_valid():
                subject = form.cleaned_data['subject']
                sender = form.cleaned_data['sender']
                #phone = form.cleaned_data['phone']
                message = form.cleaned_data['message']
                copy = form.cleaned_data['copy']
    
                recepients = ['myemail@mail.ru']
    
                # Положим копию письма в базу данных
                #MailBox.objects.create(subject=subject, sender=sender, phone=phone, message=message, copy=copy)
    
                # Если пользователь захотел получить копию себе, добавляем его в список получателей
                if copy:
                    recepients.append(sender)
                try:
                    send_mail(subject, message, 'myemail@mail.ru', recepients)
                except BadHeaderError: #Защита от уязвимости
                    return HttpResponse('Invalid header found')
                # Переходим на другую страницу, если сообщение отправлено
                return redirect('/mystudio/thanks/')
    
        else:
            form = ContactForm()
        # Выводим форму в шаблон
        return render(reguest, 'mystudio/contact.html', {'form': form})

    settings.py, urls.py и шаблон ничего не менял!
    Почему этот вариант работает нормально а с сохранение в базу не отправляет на мыло?
    Ответ написан
  • Как настроить пагинатор?

    @blazer05 Автор вопроса
    Переписал функцию
    def category(reguest, slug):
        context_dict = {}
        try:
            category = Category.objects.get(slug=slug)
            context_dict['category_name'] = category.name
            object = BlogPost.objects.filter(category=category)
            paginator = Paginator(object, 2)
    
            try:
                page = request.GET.get('page')
            except:
                page = 1
            try:
                objects = paginator.page(page)
            except(EmptyPage, InvalidPage):
                objects = paginator.page(paginator.num_pages)
    
            context_dict['objects'] = objects
            context_dict['category'] = category
            context_dict['pages'] = paginator.page(page)
    
        except Category.DoesNotExist:
            pass
        return render(reguest, 'category.html', context_dict)

    вывод в шаблон
    <div class="row">
            <div class="col-lg-12" align="center">
                <ul class="pagination">
                    {% if objects.has_previous %}
                        <li class="arrow"><a href="/blog/category/{{ objects.previous_page_number }}/">&laquo;</a></li>
                    {% else %}
                        <li class="disabled"><a href="">&laquo;</a></li>
                    {% endif %}
                    {% for pag in objects.paginator.page_range %}
                        {% if pag == objects.number %}
                            <li class="active"><a href="/blog/category/{{ category.slug }}/?page={{ pag }}">{{ pag }}</a></li>
                        {% else %}
                            <li><a href="/blog/category/{{ category.slug }}/?page={{ pag }}">{{ pag }}</a></li>
                        {% endif %}
                    {% endfor %}
                    {% if objects.has_next %}
                        <li class="arrow"><a href="/blog/category/{{ objects.next_page_number }}/">&raquo;</a></li>
                    {% else %}
                        <li class="disabled"><a href="">&raquo;</a></li>
                    {% endif %}
                </ul>
            </div>
        </div>

    урл
    url(r'^category/(?P<slug>[-\w]+)/$', views.category, name='category'),

    все равно дальше первой страницы не идет, хотя ссылка меняется, если навести курсор на номера страниц то идет от 1 и т.д.
    127.0.0.1:8000/blog/category/django/?page=2
    где косяк?

    В общем сам решил, теперь все работает. Вот код который работает, возможно кому то пригодится!
    Функция.
    def category(reguest, slug):
        category = Category.objects.get(slug=slug)
        post = BlogPost.objects.filter(category=category)
        paginator = Paginator(post, 2)
        page = reguest.GET.get('page')
        try:
            post = paginator.page(page)
        except PageNotAnInteger:
            post = paginator.page(1)
        except EmptyPage:
            post = paginator.page(paginator.num_pages)
        return render(reguest, 'category.html', {
            'category': category,
            'page': page,
            'post': post})

    Вывод в шаблон.
    <div class="row">
            <div class="col-lg-12" align="center">
                <ul class="pagination">
                    {% if post.has_previous %}
                        <li class="arrow"><a href="/blog/category/{{ category.slug }}?page={{ pag }}{{ post.previous_page_number }}">&laquo;</a></li>
                    {% else %}
                        <li class="disabled"><a href="">&laquo;</a></li>
                    {% endif %}
                    {% for pag in post.paginator.page_range %}
                        {% if pag == post.number %}
                            <li class="active"><a href="/blog/category/{{ category.slug }}?page={{ pag }}">{{ pag }}</a></li>
                        {% else %}
                            <li><a href="/blog/category/{{ category.slug }}?page={{ pag }}">{{ pag }}</a></li>
                        {% endif %}
                    {% endfor %}
                    {% if post.has_next %}
                        <li class="arrow"><a href="/blog/category/{{ category.slug }}?page={{ pag }}{{ post.next_page_number }}">&raquo;</a></li>
                    {% else %}
                        <li class="disabled"><a href="">&raquo;</a></li>
                    {% endif %}
                </ul>
            </div>
        </div>

    Урл
    url(r'^category/(?P<slug>[-\w]+)/$', views.category, name='category'),
    Ответ написан
    Комментировать
  • Django как вывести картинки в админке?

    @blazer05 Автор вопроса
    Сам решил проблему, решение тут!
    Ответ написан
    Комментировать
  • Ошибка при миграции модели?

    @blazer05 Автор вопроса
    я понял как так получилось. после обновления некоторых скриптов через панель в pycharm почему то и джанго обновилась до версии 1.8 хотя я ее не выбирал на обновление. Перед этим я делал бекап всех файлов виртуального окружения, проекта и базы данных. Пробовал восстановил файлы из бекапа виртуального окружения, джанго стала версия как и была 1.7.7 - но проблема осталась. Что нужно исправить еще?
    Ответ написан