@pydjango

Страница 98 из 1273
53r63rn4r
16.01.2017
13:33:12
один селект и там зависит уже от питона

parikLS
16.01.2017
13:34:28
http://docs.couchdb.org/en/2.0.0/couchapp/views/joins.html

не подходит?

53r63rn4r
16.01.2017
13:35:29
Подходит, так я с учетом этого и вот как бы э..

Google
53r63rn4r
16.01.2017
13:35:42
Всё равно не то(по скорости)

Так у меня за 180 секунд отчет генерится

А так - 6-8 часов

По этому, ищу как можно более гибкое решение, но уже нашел

Спасибо @hulygun

Вот к этому совету я пришел, афк реализовывать

Если не надо будут фильтры и поиск по этим полям, то можешь спокойно хранить в jsonfield

Ага, значит мне надо этот жсон ещё отсеять, сформировать тот, который устроит и впихнуть в бд

Ну, я примерно так и думал(в целом)

а для массовой выгрузки юзай генераторы... значительно снимет нагрузку

Ну ты ж получаешь словарь? то что нужно в модель через .pop('key')

Что останется - целиком в json

Mirjalol
16.01.2017
15:47:47
Привет всем!!!

Google
Mirjalol
16.01.2017
15:49:32
Как использовать ModelChoiceField queryset с филтром

Dan
16.01.2017
15:51:18
Не совсем понял

Mirjalol
16.01.2017
15:52:06
Я хочу исползоват так ModelChoiceField(queryset = SomeModel.objects.filter(...))

class LessonForm(forms.ModelForm): def __init__(self, *args, **kwargs): blogger = kwargs.pop('blogger') super(LessonForm, self).__init__(*args, **kwargs) self.fields['tutorial'].queryset = Tutorial.objects.filter(author__exact = blogger) tutorial = forms.ModelChoiceField(queryset = None, empty_label = "O'quv kursini tanlang") class Meta: model = Lesson fields = ['title', 'image', 'description', 'content'] widgets = { 'description': forms.Textarea(attrs = {'cols': 80, 'row': 20, 'class': 'materialize-textarea'}), 'image': MyClearableFileInput }

Dan
16.01.2017
15:53:59
Те тебе надо ограничить выбор при построении формы?

Dan
16.01.2017
15:56:25
Ну у тебя в ините вроде все правильно

Mirjalol
16.01.2017
15:57:06
Dan
16.01.2017
15:57:19
Единственное из поля queryset = none думаю не нужен

Смотри что у тебя из формы приходит

Mirjalol
16.01.2017
15:58:06
class AddLesson(View): def get(self, request): blogger = Blogger.objects.get(user = request.user) lesson_form = LessonForm(blogger = blogger) return render(request, 'administration/add_lesson.html', {'lesson_form': lesson_form}) def post(self, request): blogger = Blogger.objects.get(user = request.user) lesson = Lesson() lesson_form = LessonForm(request.POST, request.FILES, instance = lesson, blogger = blogger) if lesson_form.is_valid(): lesson_form.save() return redirect('add_lesson') else: return render(request, 'administration/add_lesson.html', {'lesson_form': lesson_form})

в post форма не переполняется с tutorial_id

Denis
16.01.2017
16:10:08
А селект правильно строится?

Mirjalol
16.01.2017
16:15:54
не понел?

Denis
16.01.2017
16:18:04
Сам селект формы. name, Values?

Mirjalol
16.01.2017
16:19:15
Denis
16.01.2017
16:20:14
Хм... Странно тогда. На этом моя экстрасенсорика заканчивается

Mirjalol
16.01.2017
16:22:45
Я думаю, что __init__ переопределяет значения формы

Google
Denis
16.01.2017
16:55:45
Я думаю, что __init__ переопределяет значения формы
Я думаю что в ModelChoiceField не хватает класса модели

А queryset убрать из аргументов поля

Mirjalol
16.01.2017
18:40:15
А queryset убрать из аргументов поля
Убрал queryset и ошибка __init__ takes at least 2 arguments

Неужеле нет никакой пример по этой, в документации по queryset ничего нету

Denis
16.01.2017
18:43:01
Ребенка спать уложу, выйду с компа, гляну

Mirjalol
16.01.2017
18:45:17
спасибо

Rookie
16.01.2017
18:55:03
Могу кинуть пример, как это делаю я. Нет времени переписывать именно ваше, но там идентично.

`# 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})`

Denis
16.01.2017
19:09:31
Я вот смотрю... Вы все принципиально не юзаете FormView?

Rookie
16.01.2017
19:10:05
Юзаем. Но не везде.

А так же UpdateView и DetailView. Когда это можно и быстро.

Eugene
17.01.2017
08:17:36
Здравствуйте. Знает кто-нибудь норм библиотеку для работы с картой гугл? Желательно что-бы работала в админке и был автокомплит

Rookie
17.01.2017
08:22:53
Гугл - нет. Но, я как то сляпал костыль. Забирал от api яндекса, отдает незамороченный жысон, оттуда драл координаты точки (широту и долготу) и подкидывал в гуглокарту. Код есть.

Eugene
17.01.2017
08:28:50
Ну давай, хотя бы просто посмотрю, как и что там)

Кстати, Full text search джанговский кто юзал уже? Норм?

Alex
17.01.2017
08:30:17
Ребят, скажите как правильнее локализировать страницу на два других языка. Я вижу только один способ, это в урлах прописывать страницы типа blabla.com/en/tralala/ и направить туда отдельную вьюху. Не уверен, что это правильно. Я пока новичок

Eugene
17.01.2017
08:30:55
У Django этот механизм уже готов)

Alex
17.01.2017
08:31:34
Интерфейс одинаковый, только контент

Eugene
17.01.2017
08:31:42
А если контент, то можно например django-modeltranslation

Google
Denis
17.01.2017
08:33:17
Для контента впринципе существует 2 паттерна: как ты написал и использование языкового поддомена... en.bla-bla.ru/... смотри сам

Alex
17.01.2017
08:34:07
Ага, спасибо, я понял )

Eugene
17.01.2017
08:34:26
https://docs.djangoproject.com/en/1.10/topics/i18n/translation/#module-django.conf.urls.i18n

Rookie
17.01.2017
08:35:30
Форматить код - это 3 обратных кавычки тут ` ?

Eugene
17.01.2017
08:36:29
`

Да

Denis
17.01.2017
08:37:01
А для поддоменов можешь посмотреть это https://github.com/trapeze/transurlvania

Admin
ERROR: S client not available

Eugene
17.01.2017
08:37:02
Мне кажется для кода лучше, какой-нибудь pastebin юзать.

Rookie
17.01.2017
08:37:50
Я в курсе про пастебин. Тебе костыль этот сюда, или на пастебин ссылку?

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()

Eugene
17.01.2017
08:40:14
оу, и так понятно

Rookie
17.01.2017
08:40:24
latitude=coordinates[0], longitude=coordinates[1]

Собсна, идея. При создании записи новой квартиры манагер вводит адрес, разбираем апи яндекс, и пишем широту и долготу.

<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>

Выводим в шаблон картинку из гуглокарт по полученным координатам на странице созданной квартиры.

Denis
17.01.2017
08:43:17
Rookie
17.01.2017
08:45:15
Как вариант) Там создание объекта сдаваемого жилья, и манагеры вводят данные. Довольно большая форма, и им всё равно много писать. Но, можно и такой жыэс навернуть. Думаю, мне насыпят печенек)

Denis
17.01.2017
08:46:50
+ ко всему апи гугла вроде чуть лучше... в плане лимита халявных запросов в день)))

Rookie
17.01.2017
08:49:25
А апи гугла выдаст мне динамически координаты по введенному адресу так, чтобы я смог вменямо записать результат в БД?

Google
Denis
17.01.2017
08:49:49
а почему нет?

Rookie
17.01.2017
08:50:01
В данный момент я могу получать и хранить 2 флота в 2-х полях.

Не знаю, может и да.

Eugene
17.01.2017
08:50:18
https://github.com/philippbosch/django-geoposition я вот это юзаю, но чот автокомплит не работает.

Mirjalol
17.01.2017
15:55:25
`# 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 лист

Eugene
17.01.2017
18:28:15
Так, у клиента домен в wix , можно ли там как-то сменить названия DNS на digitalocean?

Rookie
17.01.2017
18:30:20
Скорее нет.

Иначе смысл "конструктора" пропадает.

Eugene
17.01.2017
19:04:39
надо оттуда переносить домен на другой регистратор.(

Rookie
17.01.2017
19:14:31
Разделегировать можно.

parikLS
17.01.2017
19:54:52
слеш в конце?

rfg
17.01.2017
20:03:56
нет

Konstantin
17.01.2017
20:13:49
Доброй ночи. Возможно джанги это не касается. Я пишу RESTful API (DRF), коллега использует react. Все хорошо, но нужно реализовать server side rendering... Что использовать? Я в JS мало что понимаю...

parikLS
17.01.2017
20:16:29
js не причем, тебе нужно рендерить страницы на беке (я так подозреваю вам для поисковиков?), используй джанго темплейты

Stanislav
17.01.2017
20:17:47
js не причем, тебе нужно рендерить страницы на беке (я так подозреваю вам для поисковиков?), используй джанго темплейты
Что за стереотипы? Динамически генерируемые сайты уже давно нормально индексирует

f1nnix
17.01.2017
20:18:24
По сути, собирая шаблоны нужно отрендерить JSX-компоненты, передав в них данные.

Страница 98 из 1273