@pydjango
Django

Полезная информация и правила: https://github.com/amureki/django_faq Вакансии и резюме: @django_jobs Пофлудить идём сюда: @django_flood Статистика чата: combot.org/chat/-1001063854692

1741 members

Архив канала @pydjango 17 января 2017 г.

08:17:36 ДП
User 194990550
Здравствуйте. Знает кто-нибудь  норм библиотеку для работы с картой гугл? Желательно что-бы работала в админке и был автокомплит
08:22:53 ДП
User 254082535
Гугл - нет. Но, я как то сляпал костыль. Забирал от api яндекса, отдает незамороченный жысон, оттуда драл координаты точки (широту и долготу) и подкидывал в гуглокарту. Код есть.
08:28:50 ДП
User 194990550
Ну давай, хотя бы просто посмотрю, как и что там)
08:29:52 ДП
User 194990550
Кстати, Full text search джанговский кто юзал уже? Норм?
08:30:17 ДП
User 111662298
Ребят, скажите как правильнее локализировать страницу на два других языка. Я вижу только один способ, это в урлах прописывать страницы типа blabla.com/en/tralala/ и направить туда отдельную вьюху.
Не уверен, что это правильно. Я пока новичок
08:30:55 ДП
User 194990550
У Django этот механизм уже готов)
08:31:21 ДП
User 120578100
User 111662298
Ребят, скажите как правильнее локализировать страницу на два других языка. Я вижу только один способ, это в урлах прописывать страницы типа blabla.com/en/tralala/ и направить туда отдельную вьюху.
Не уверен, что это правильно. Я пока новичок
А тебе интерфейс или контент?
08:31:34 ДП
User 111662298
Интерфейс одинаковый, только контент
08:31:42 ДП
User 194990550
А если контент, то можно например django-modeltranslation
08:33:17 ДП
User 120578100
Для контента впринципе существует 2 паттерна: как ты написал и использование языкового поддомена... en.bla-bla.ru/... смотри сам
08:34:07 ДП
User 111662298
Ага, спасибо, я понял )
08:34:26 ДП
User 194990550
https://docs.djangoproject.com/en/1.10/topics/i18n/translation/#module-django.conf.urls.i18n
08:35:30 ДП
User 254082535
Форматить код - это 3 обратных кавычки тут ` ?
08:36:29 ДП
08:36:44 ДП
08:37:01 ДП
User 120578100
А для поддоменов можешь посмотреть  это https://github.com/trapeze/transurlvania
github.com/trapeze/transurlvania
transurlvania - This application provides a collection of URL-related utilities for multi-lingual projects.
08:37:02 ДП
User 194990550
Мне кажется для кода лучше, какой-нибудь pastebin юзать.
08:37:50 ДП
User 254082535
Я в курсе про пастебин. Тебе костыль этот сюда, или на пастебин ссылку?
08:39:55 ДП
User 254082535
def form_valid(self, form):
        url = 'https://geocode-maps.yandex.ru/1.x/?format=json&geocode=%s, улица %s, дом %s' %\
              (form.cleaned_data['city'], form.cleaned_data['street'], form.cleaned_data['build_num'])
        g = Grab()
        a = g.go(url)
        coordinates = (a.json['response']['GeoObjectCollection']['featureMember'][0]
                       ['GeoObject']['Point']['pos']).split()
08:40:14 ДП
User 194990550
оу, и так понятно
08:40:24 ДП
User 254082535
latitude=coordinates[0], longitude=coordinates[1]
08:41:24 ДП
User 254082535
Собсна, идея. При создании записи новой квартиры манагер вводит адрес, разбираем апи яндекс, и пишем широту и долготу.
08:42:14 ДП
User 254082535
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=YOURGOOGLEKEY&callback=initMap&sensor=true"></script>
                    <script type="text/javascript">
                        jQuery(document).ready(function ($) {
                            var position = new google.maps.LatLng({{ flat.longitude }}, {{ flat.latitude }});
                            var settings = {
                              zoom: 16,
                              center: position,
                              mapTypeControl: true,
                              mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
                              navigationControl: true,
                              navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},
                              mapTypeId: google.maps.MapTypeId.ROADMAP                    };
                            var map = new google.maps.Map(document.getElementById("map"), settings);
                            var marker = new google.maps.Marker({
                                    position: position,
                                    map: map
                            });
                        });

                         var header_map = {"tab_open":"Карта","tab_close":"Закрыть"};
                    </script>
08:42:52 ДП
User 254082535
Выводим в шаблон картинку из гуглокарт по полученным координатам на странице созданной квартиры.
08:43:17 ДП
User 120578100
User 254082535
Собсна, идея. При создании записи новой квартиры манагер вводит адрес, разбираем апи яндекс, и пишем широту и долготу.
Ну и собсна не хватает js, который бы заполнял бы инпуты по клику на карту)))
08:45:15 ДП
User 254082535
Как вариант) Там создание объекта сдаваемого жилья, и манагеры вводят данные. Довольно большая форма, и им всё равно много писать. Но, можно и такой жыэс навернуть. Думаю, мне насыпят печенек)
08:46:50 ДП
User 120578100
+ ко всему апи гугла вроде чуть лучше... в плане лимита халявных запросов в день)))
08:49:25 ДП
User 254082535
А апи гугла выдаст мне динамически координаты по введенному адресу так, чтобы я смог вменямо записать результат в БД?
08:49:49 ДП
User 120578100
а почему нет?
08:50:01 ДП
User 254082535
В данный момент я могу получать и хранить 2 флота в 2-х полях.
08:50:13 ДП
User 254082535
Не знаю, может и да.
08:50:18 ДП
User 194990550
https://github.com/philippbosch/django-geoposition я вот это юзаю, но чот автокомплит не работает.
github.com/philippbosch/django-geoposition
Django model field that can hold a geoposition, and corresponding widget - philippbosch/django-geoposition
10:46:58 ДП
03:55:25 ПП
User 188924529
User 254082535
`# form
class ManagersUpdateForm(forms.ModelForm):

    def __init__(self, user, *args, **kwargs):
        super(ManagersUpdateForm, self).__init__(*args, **kwargs)

        if user.is_superuser:
            self.fields['department'].queryset = Department.objects.all()
        else:
            self.fields['department'].queryset = Department.objects.filter(id=user.id)

        if user.is_superuser:
            self.fields['staff'].queryset = Group.objects.all().exclude(id=1)
        else:
            self.fields['staff'].queryset = Group.objects.all().exclude(id__in=[1, 2])

    department = forms.ModelChoiceField(Department.objects.all(), label='Филиал', required=False,
                                        widget=forms.Select(attrs={'class': 'form-control'}))
    staff = forms.ModelChoiceField(Group.objects.all(), label='Должность', required=False,
                                   widget=forms.Select(attrs={'class': 'form-control'}))
    # тут ещё поля, я убрал для примера
    class Meta:
        model = Managers

        fields = ('first_name', 'last_name', 'email', 'phone',
                  'additional_phone',)

# view

class ManagerEdit(TemplateView):
    template_name = 'manager_edit.html'

    def get_context_data(self, **kwargs):
        context = super(ManagerEdit, self).get_context_data(**kwargs)
        user = User.objects.get(username=kwargs['username'])
        form = ManagersUpdateForm(user)
        context['manager'] = Managers.objects.get(id=kwargs['pk'])
        context['title'] = 'Редактировать сотрудника'
        context['form'] = form
        return context

    def post(self, request, *args, **kwargs):
        user = request.user
        form = ManagersUpdateForm(user, request.POST)
        manager = Managers.objects.filter(id=kwargs['pk'])
        if form.is_valid():
            dept = form.cleaned_data['department'].id
            staff = form.cleaned_data['staff']

            manager.update(
                    first_name=form.cleaned_data['first_name'],
                    last_name=form.cleaned_data['last_name'],
                    email=form.cleaned_data['email'],
                    phone=form.cleaned_data['phone'], additional_phone=form.cleaned_data['additional_phone'],
                    dept_id=dept, is_staff=1, staff=staff, success_closed=0, is_active=1)
            return HttpResponseRedirect('/dashboard/%s/managers/' % user.username)
        return render(request, self.template_name, {'form': form, 'manager': manager})`
Спасибо, глупая ошибка было что забил добавить на fields лист
06:28:15 ПП
User 194990550
Так, у клиента домен в wix , можно ли там как-то сменить названия DNS на digitalocean?
06:30:20 ПП
User 254082535
Скорее нет.
06:30:30 ПП
User 254082535
Иначе смысл "конструктора" пропадает.
07:04:39 ПП
User 194990550
надо оттуда переносить домен на другой регистратор.(
07:14:31 ПП
User 254082535
Разделегировать можно.
07:53:47 ПП
User 212383921
как исправить ошибку
07:54:52 ПП
User 107485588
слеш в конце?
08:03:56 ПП
08:13:49 ПП
User 177174313
Доброй ночи. Возможно джанги это не касается. Я пишу RESTful API (DRF), коллега использует react. Все хорошо, но нужно реализовать  server side rendering... Что использовать? Я в JS мало что понимаю...
08:16:29 ПП
User 107485588
js не причем, тебе нужно рендерить страницы на беке (я так подозреваю вам для поисковиков?), используй джанго темплейты
08:17:47 ПП
User 200200555
User 107485588
js не причем, тебе нужно рендерить страницы на беке (я так подозреваю вам для поисковиков?), используй джанго темплейты
Что за стереотипы? 
Динамически генерируемые сайты уже давно нормально индексирует
08:18:24 ПП
User 126848884
User 177174313
Доброй ночи. Возможно джанги это не касается. Я пишу RESTful API (DRF), коллега использует react. Все хорошо, но нужно реализовать  server side rendering... Что использовать? Я в JS мало что понимаю...
Вам нужно отрендерить initial state для React-приложения.
08:19:43 ПП
User 126848884
По сути, собирая шаблоны нужно отрендерить JSX-компоненты, передав в них данные.
08:20:19 ПП
User 126848884
Я никогда не делал этого в контексте Django, но на первый взгляд эта штука должна работать: https://github.com/markfinger/python-react
github.com/markfinger/python-react
Server-side rendering of React components. Contribute to markfinger/python-react development by creating an account on GitHub.
08:20:35 ПП
User 177174313
User 107485588
js не причем, тебе нужно рендерить страницы на беке (я так подозреваю вам для поисковиков?), используй джанго темплейты
вот это совершенно использовать не хочется...
08:20:54 ПП
User 177174313
User 126848884
Я никогда не делал этого в контексте Django, но на первый взгляд эта штука должна работать: https://github.com/markfinger/python-react
github.com/markfinger/python-react
Server-side rendering of React components. Contribute to markfinger/python-react development by creating an account on GitHub.
я вот что на счет этого и думал.. попробую запустить
08:21:11 ПП
User 126848884
Также я вижу, что есть интеграция с webpack в этом проекте: https://github.com/aleccunningham/django-react
github.com/aleccunningham/django-react
django-react - Server side rendering of react components integrated with django
08:21:36 ПП
User 126848884
Webpack — это популярный сборщик для морды.
08:22:31 ПП
User 126848884
Наверняка, ваши фронтендщики используют его. Они могут помочь немного с ним.
08:23:08 ПП
User 177174313
так, а на сегодня проблема с рендерингом вообще актуальна? поисковики, я слышал, поисковики вроде норм JS относятся. Не?
08:25:58 ПП
User 107485588
User 200200555
Что за стереотипы? 
Динамически генерируемые сайты уже давно нормально индексирует
у тебя есть хоть одно приложение на реакте что ты такое рассказываешь?
08:26:35 ПП
User 107485588
User 177174313
так, а на сегодня проблема с рендерингом вообще актуальна? поисковики, я слышал, поисковики вроде норм JS относятся. Не?
к пьюр джсу возможно, с реактом дела пока не очень
08:26:43 ПП
User 200200555
User 107485588
у тебя есть хоть одно приложение на реакте что ты такое рассказываешь?
Я знаю людей которые знают людей...
Ну ты понял

Но я уверен что они не врут и они умеют выводить приложения на реакте в топы
08:27:14 ПП
User 107485588
понятно
08:28:46 ПП
User 177174313
ладно парни, судя по всему пробема есть... для меня, консольщика и бекенщика, она не понятна ;) но решать придется...