• Форма не отправляет на почту сообщение?

    @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'),
    Ответ написан
    Комментировать
  • Где народ берет цифровой контент для продажи?

    @blazer05 Автор вопроса
    Есть скрипт аналогичного сервиса, но как его наполнить товаром и пригласить продавцов и покупателей вот в чем вопрос?
    Ответ написан
    Комментировать
  • Django как вывести картинки в админке?

    @blazer05 Автор вопроса
    Сам решил проблему, решение тут!
    Ответ написан
    Комментировать
  • Anaconda + Python + Bimbam выдаёт ошибку, что делать?

    @blazer05
    Думаю это должно помочь, покрайней мере в джанго в файле моделей эту функцию нужно указать для питона2
    def __unicode__(self):      # Для python-3 кодировка прописывается так def __str__(self):
          return self.title
    Ответ написан
    2 комментария
  • Как правильно установить PyCharm?

    @blazer05
    Предположу в начале каждого питоновского файла, где будет прописываться кирилица нужно поставить это
    # -*- coding: utf-8 -*-
    Ответ написан
    Комментировать
  • Ошибка при миграции модели?

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