Задать вопрос
  • Какие данные получает местный банк при переводе денег из payoneer?

    Alex_Payoneer
    @Alex_Payoneer
    Добрый день,
    Банк не получит информацию о вашем аккаунте Payoneer. Описание перевода должно отобразиться, как "Withdrawal".
    В итоге банк должен получить имя получателя, сумму перевода, реквизиты банковского счета, описание и от кого пришел перевод.
    Ответ написан
    4 комментария
  • Что и как нужно тестировать unit-тестами в django?

    sim3x
    @sim3x
    chimera.labs.oreilly.com/books/1234000000754

    1 да
    2
    тестировать нужно все
    не надо тестировать функционал джанги
    не надо тестировать константы
    3
    Selenium + unittest https://docs.djangoproject.com/en/1.9/topics/testi...
    Ответ написан
    Комментировать
  • Как вывести из модели связи с Foreign Key?

    winordie
    @winordie
    Лучшая документация -- исходники
    Snachala nado opredelit related_name dlya Vospitately.vospet_crushek
    class Vospitately(models.Model):
        fio = models.CharField(max_length=40)
        dolshnost = models.CharField(max_length=80, default='Должность..')
        image = models.ImageField()
        vospet_crushek = models.ForeignKey(Cruski', related_name='vospitately')
        def __str__(self):
            return self.fio

    Potom vo view mogno tak sdelat
    def kruzhki(request):
        q = Cruski.objects.all()
        return render(request,'krushki.html',{'kruzki':q})

    I nakonec v shablone pishem chto to po tipu takogo
    {% block kruzhki %}
    {% for krug in kruzki %}
    <p><b>{{ krug.name }}</b></p>
    {% for vospet in krug.vospitately.all %}
    <p> {{ vospet.fio }}</p>
    {% endfor %}
    <p>{{ krug.description }}</p>
    <p>{{ krug.price }}</p>
    {% endfor %}

    Vot i vse. Takim obrazom u nas vivoditsya krugki i vospitately kotorie v nis sostoyat.

    Kstati vam bi opredelitsya stoit kak pisat "кружки":
    - Cruski
    - vospet_crushek
    - kruzhki
    - kruzki
    - krushki.html
    Ответ написан
    3 комментария
  • Как определить нормального клиента?

    @WapGeaR
    Программист
    Просто не связываюсь с:
    • Арабами
    • Азиатами
    • Индусами
    • С людьми с СНГ
    • Латиносами

    и как-то проще работается.
    Ответ написан
    8 комментариев
  • Как отметить все нажатые кнопки?

    @lega
    Ответ написан
    Комментировать
  • Какой метод написать для статичных страничек?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Используй TemplateView

    urls.py:
    from django.views.generic import TemplateView
    urlpatterns = patterns('',
        url(r'^about/$', TemplateView.as_view(template_name='about.html')),
    )
    Ответ написан
    Комментировать
  • Как расширить User используя Django REST?

    У вас всё не правильно.
    Ознакомьтесь с этим https://docs.djangoproject.com/en/1.9/topics/auth/...

    class UserProfile(models.Model):
        user = models.ForeignKey(settings.AUTH_USER_MODEL, unique=True)
        organization = models.ForeignKey(Organization, verbose_name=_('Organization'))
    
    ...
    AUTH_PROFILE_MODULE = 'app.UserProfile'

    Это в корне не верно, вы не расширили модель пользователя, вы создали просто некую модель которая ссылается на пользователя - это не верно!

    Вам нужно унаследоваться от стандартной модели и уже туда добавить новое поле:
    from django.contrib.auth.models import AbstractUser
    
    class User(AbstractUser):
        organization = models.ForeignKey(Organization, verbose_name=_('Organization'))


    Лучше всего это делать при старте нового проекта, если уже используются пользователи в системе вы не можете просто взять и включить новую кастомную модель, у вас всё сломается, есть хорошее решение как безболезненно мигрировать: https://pypi.python.org/pypi/django_custom_user_mi...
    Воспользовался им около месяца назад, всё отлично, только делайте бэкапы и точно следуйте инструкциям!

    После того как появятся новые кастомные пользователи, вы уже не сможете делать такие запросы:
    >>> from django.contrib.auth.models import User
    >>> user = User.objects.get(pk=1)
    >>> dir(user)


    Придётся делать примерно так:
    from django.contrib.auth import get_user_model
    User = get_user_model()
    user = User.objects.get(pk=1)
    dir(user)

    И так везде где вы раньше использовали django.contrib.auth.models:User
    Ответ написан
    1 комментарий
  • Как в Django реализовать таймер публикации?

    sim3x
    @sim3x
    Один вариант вижу кастомизировать менеджер модели и сравнивать текущий дейтайм с указанным.
    нормальное решение.
    Не забудь оставить стандартный менеджер, чтоб потом не огребать проблем в админке
    class MyModel(Model):
        # .....
        objects = Manager()
        ready_for_pub = CustomManager()
    Ответ написан
    1 комментарий
  • Как в django правильно кастомизировать приложения?

    sim3x
    @sim3x
    Шаблоны: копируешь из исходного аппа с сохранением относительного пути

    Вью: копипастишь в свои вьи там модифицируешь, также переписывая под себя urls
    Модели: копипастиш в свои модели

    Кастомизация каждого аппа отдельная история.
    Кастомизация вью и моделей - сложное дело. Проще переписать под себя апп
    Ответ написан
    8 комментариев
  • Как получить текст ошибки form.errors в view?

    вопрос, кстати, хороший про получение ошибок. тоже в свое время задавался вопросом - парсить или не парсить :)
    решается так :
    for field in form.errors:
                   error[field]=form.errors[field].as_text()
    Ответ написан
    Комментировать
  • Что делает программиста программистом?

    27cm
    @27cm
    TODO: Написать статус
    В вашем списке нет самого главного. Можно всё перечисленное знать, но не быть программистом.

    Программиста делают программистом написанные им программы!
    Ответ написан
    5 комментариев
  • Как перегрузить div?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Фактически вам нужно вызвать ещё раз то, что у вас написано в $(document).ready:

    function getData(){
        var url = $('.gridly').attr('req');
        $.get(url, function(data){
            var json = JSON.parse(data)
            $.each(json, function(i, obj) {
                $('.gridly').append('<div class="brick small">'+obj.fields.title +'<a href="."><img src="/media/'+obj.fields.head_pic+'"'+'></a><a class="delete" slug="'+obj.fields.slug+'"href="#">×</a></div>');
                $('.gridly').gridly({
                    base: 60, // px
                    gutter: 20, // px
                    columns: 10
                  });
            });
        });
    }
    $(document).ready( getData );

    а кнопку немного поменять (есть разные варианты, например):
    <input id="cancel_changes" class="btn btn-success col-sm-6  col-xs-12 margin-bottom col-sm-offset-1 col-xs-offset-0" value="Отменить" type="button" onclick="getData()">
    Ответ написан
    Комментировать
  • AJAX, Django, CSRF: Почему выходит ошибка 403?

    Bahusss
    @Bahusss
    Python Master
    На самом деле csrf.js не генерирует csrf token, а только читает его из cookies и помещает в HTTP заголовок, чтобы Django (CsrfViewMiddleware) смог прочитать его и защитить от CSRF-атаки, если токен невалиден.

    Таким образом, чтобы добавить в cookies этот самый csrf token необходимо чтобы:
    1. В MIDDLEWARE_CLASSES обязательно должна быть указана CsrfViewMiddleware
    2. В шаблоне вам нужно вставить в какую-нибудь форму тег {% csrf_token %}, если у вас нет никакой подходящей формы, то воспользуйтесь декоратором ensure_csrf_cookie (https://docs.djangoproject.com/en/1.8/ref/csrf/#dj..., которым нужно декорировать view c index.html.
    Ответ написан
    2 комментария
  • Какие разделы английского стоит выучить для фриланса?

    @heartdevil
    плыву как воздушный шарик
    Учите сугубо ИТ английский.

    Открою секрет.

    Сидите часто на stackoverflow и читайте самые популярные вопросы и ответы от крутых разработчиков (владеющих отличным английским). Там легко понять уровень английского по ответам и вопросам. Это поможет не только "вариться" в своей среде, но и "вариться" по-английски. Запоминайте структуру сложных вопросов. И как они вообще подготавливаются. Далее смотрите, как на них отвечают. Зачастую, всегда просят описать задачу. Что, собственно, на самом деле и происходит на фрилансе. Далее, просят уточнить некоторые моменты. Затем постят свои решения с описаниями. Тут тоже нужно уделить внимание на подготовку ответа. Часто, конечно, это просто код)), но вам никто не запрещает, к примеру, спросить уточнения (не для понимания кода или алгоритма, а для понимания того, как разработчик будет разжевывать вам ответ на английском ;-)), если самолюбие позволяет)). Можете даже выписывать отдельные словосочетания, которые они применяют. К примеру, создал массив, присвоил значения переменной, пробежался циклом по массиву, создал класс, имплементировал интерфейс, перегрузил чего-то там и так далее.

    В таком ритме быстро научитесь понимать вопросы на английском и умело отвечать, но все это письменно. Разговорный вам может понадобиться, если клиент будет часто по скайпу вам названивать. Его освоить в разы сложнее. Поэтому можете честно заявлять клиенту, что уровень пока у вас не позволяет вести разговор. А там все от клиента будет зависеть.
    Ответ написан
    3 комментария
  • Где в коде ошибка?

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

    sim3x
    @sim3x
    stackoverflow.com/a/4674127

    # forms.py
    # ...
    class MyForm(forms.ModelForm):
        class Meta:
            model = MyModel
    
    # views.py
    # ...    
    def my_view(request, id): 
        instance = get_object_or_404(MyModel, id=id)
        form = MyForm(request.POST or None, instance=instance)
        if form.is_valid():
            form.save()
            return redirect('next_view')
        return direct_to_template(request, 'my_template.html', {'form': form}
    Ответ написан
    Комментировать
  • Как использовать Username в качестве slug?

    syschel
    @syschel
    freelance/python/django/backend
    zigen: Разобрался

    И неверно разобрался.

    slug_field [get_slug_field()]

    class MyClassDetailView(DetailView):
        model = User
        slug_field = 'username'


    Ибо def get_object() используется для других целей "немного". К примеру для НЕ явной фильтрации (образно говоря "только для юзеров мужского пола", "только объектов со статусом - отображать" и так далее). Вы же "slug" передаёте в адресной строке, это явный параметр и для этого идёт банальный и правильный slug_field.
    Ответ написан
    Комментировать
  • Как в передать в CBV форму из другой CBV?

    @deliro
    Создай форму (сейчас она динамически генерируется CreateView)

    def get_initial(self):
        return {'news': self.get_object(), 'author': self.request.user}
    
    def get_context_data(self, **kwargs):
        kwargs['form'] = CommentForm(self.request.POST, initial=self.get_initial())
        return super().get_context_data(**kwargs)
    Ответ написан
    5 комментариев
  • Как правильно понять этот сложный код?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Учи матчасть...

    /* Функция асинхронной загрузки хеадера */
    function getHeader() {
      $.post('modules/constructor.php',     /* Аппелируем к серверному скрипту по указаному адресу */
          { 'action': "header", 'lang': lang },   /* Передаем параметры на сервер */
           function(data) {                            /* Callback - параметр анонимня функция. Вызывается при удачном запросе */
              $('div#header')                          /* Выбираем #header - но правильнее $('#header'), ибо 2 блока с одним id не правильно */
                 .empty().append(data);           /* Очищает выбраный блок и дописывает к нему полученные данные */
           	}
          ).done(function() {                         /* Событие выполняется после удачного выполнения запроса */
            getFooter()                                 /* Вызов запроса Fotter */
          })
    }
    
    /* далее аналогично но для footer */
     
    function getFooter() {
      $.post('modules/constructor.php',    
          { 'action': "footer", 'lang': lang },    
           function(data) {                            
              $('#footer').empty().append(data); 
           	}
          ).done(function() {
            getScriptHandF();              /* Здесь была синтаксическая ошибка: отсутствие замыкающего ";" */
            getContent(content)
          })
    }
    function getContent(cont) {
      $.post('modules/constructor.php', 
          { 'content': cont, 'lang': lang, 'device': devi },
           function(data) { 
              $('#content-wrapper').empty().append(data); 
           	}
          ).done(function() {
    
    /* Далее человек питался сделать прелоадинг картинок. НО! */
    /* Картинки уже начались загружатся после  выполнения
     колбеков из загрузок getContent, getHeader, getFoоter */
            var paths  = [];                  /* Готовим массив для прелоадинга картинок */
            var images = $('body').find('img');    /* Выбираем все картинки */
            images.each(function() {                  /* Пробегаемся по всем картинкам */
              paths.push($(this).attr('src'));          /* Записываем ссылку на картинку в масив */
            });
             
            preloadImages(paths, function () {   /* Вызывает preloadImages Описания процедуры нет */
              $("html,body").animate({"scrollTop":0},200);  /* Анимирует скроллинг если страница прокручена на верх страницы */
              $('#preload').fadeOut(1000);   /* Анимирует прозрачность кроющего блока #preload */
              getScript();                              /* Вызывает getScript */
              if (cont=="home") getSlider(); /* Вызывает getSlider если страница домашняя */
            });
          })
    }
    Ответ написан
    2 комментария