
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
Те тебе надо ограничить выбор при построении формы?

Mirjalol
16.01.2017
15:54:30
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
}
Вот так сделал но когда post сделаю tutorial_id may not be null ошибка

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
А queryset убрать из аргументов поля

Mirjalol
16.01.2017
18:40:15
Неужеле нет никакой пример по этой, в документации по 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 этот механизм уже готов)

Denis
17.01.2017
08:31:21

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

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