eugeny
11.08.2016
11:55:45
я уже усомнился в слогане Джанго про их молниеносную скорость
приложение писал три дня, выкладываю неделю
Paul
11.08.2016
11:56:36
eugeny
11.08.2016
11:57:12
потому как я windows-user и не в курсе устройства консоли и приложений на unix
Google
Paul
11.08.2016
11:57:41
есть инструкции. В инструкциях написно просто и понятно. Есть специалисты, можно пойти и спросить
eugeny
11.08.2016
11:58:15
а где же искать специалиста, который бы за плату со мной сел и настроил этот сервак?
parikLS
11.08.2016
12:01:03
щас поищу ссылку
апач последний раз юзал года 3 назад
eugeny
11.08.2016
12:04:01
Спасибо! Щас попробую еще раз! )
parikLS
11.08.2016
12:04:37
если что пиши в личку, смогу мож подсказать че
а вообще конечно основы линукса явно не помешало бы подтянуть (=
например https://www.opennet.ru/docs/RUS/unix_basic/
kiwwwi
12.08.2016
07:41:51
Всем привет. Сегодня пришла интересная задачка. Правда не знаю как подойти, поэтому решил посоветоваться. В общем пользователеи сайта должны сами моделировать формы и сохранять их. Т.е. пользователь выбирает что на форме должно быть 2 чекбокса, один текстинпут и один селект. Дефолтные значения такие-то возможные значения такие-то. Не знаю как все это добро хранить в бд. Поискал батарейки и наткнулся на pulpo-forms-django. Из минусов - оно тесно завязано на ангуляр, поэтому мне не подходит
parikLS
12.08.2016
08:17:20
дойду до компа напишу
Google
kiwwwi
12.08.2016
08:19:18
Буду очень благодарен!
parikLS
12.08.2016
08:42:01
Буду очень благодарен!
вообщем я делал так: есть некая модель UserForm, и с ней по форейн кей связаны модели InputField, DateField и т.д., каждая Field модель представляет собой html input type. модели супер простые, пример :
class UserForm(models.Model):
name = models.CharField(max_length=255, unique=True)
def serialize(self):
return {
'id': self.pk,
'name': self.name,
'input_fields': [input_field.serialize() for input_field in self.inputfield_set.all()],
'select_fields': [select_field.serialize() for select_field in self.selectfield_set.all()],
'date_fields': [date_field.serialize() for date_field in self.datefield_set.all()]
}
class InputField(models.Model, CommonMethodMixin):
name = models.CharField(max_length=255)
verbose_name = models.CharField(max_length=255)
document = models.ForeignKey(to=UserForm)
def serialize(self):
return {
'name': self.name,
'verbose_name': self.verbose_name,
}далее через админку создается форма, к ней крепятся нужные инпуты, во вьюхе на фронт отдается джсон:
class FormView(View):
def get(self, request):
response = {
"forms": [form.serialize() for form in UserForm.objects.all()]
}
return HttpResponse(json.dumps(response))а на фронте респонс парсится и из него создается готовая форма
джс листинг строк 200, сюда кидать не буду, если нужно будет - могу кинуть в личку
дефолтные значения и возможные значения в твоем случае так же могут быть отдельными моделями, например ManyToMany к филдам
ну тут уже нужно смотреть более подробно
kiwwwi
12.08.2016
08:50:15
Спасибо! Я представлял себе что-то подобное. Если можно, то джаваскрипт листинг я бы тоже взял
Покурить так сказать
parikLS
12.08.2016
08:50:41
щас кину в личку
Alexander
12.08.2016
10:17:17
то есть делаем модельку Формы, там поля имя формы, какие-то ещё поля и вот это поле с параметрами полей
kiwwwi
12.08.2016
10:55:47
> @lorddaedra
все эти параметры можно хранить в ArrayField + HStoreField
Ага, спасибо. Почитаю про это
.
12.08.2016
20:59:36
Гайз, написал такую вьюху
def addlike(request, article_id):
try:
article = Article.objects.get(id=article_id)
article.article_likes += 1
article.save()
except ObjectDoesNotExist:
raise Http404
return redirect('/')
Она полностью не робит, ни редирект, ни увеличение лайков.
Вот мой урл
url(r'^articles/add_like/(?P<article_id>\d+)/$', views.addlike, name='add_like')
Вот так прописываю ссылку в шаблоне
<a href="{% url 'add_like' article.id %}">
Paul
12.08.2016
21:02:18
.
12.08.2016
21:03:19
Перебрасывает на articlles/add_like/ и все
т.е. редиректа нет
увеличения числа лайков тоже
Вопрос снимается
parikLS
13.08.2016
08:58:08
Dan
13.08.2016
09:00:01
ArrayField - это да только для постгреса
для остальных баз можно использовать manytomany скорее всего
Google
Ilya
13.08.2016
10:50:37
Здравствуйте, кто-нибудь разворачивал tornado?
parikLS
13.08.2016
12:11:06
Ilya
13.08.2016
12:12:15
рядом с джангой?
ну хотя не суть
у меня https соединение
и когда пытаюсь подключиться к сокету
timeout error
если знаешь, подскажи пожалуйста в чём проблема
parikLS
13.08.2016
12:17:36
а трейс есть? как хттпс поднимаешь? как коннектишься?
Ilya
13.08.2016
12:19:08
конектюсь пока просто с консоли
var ws = new WebSocket('wss://....');
я походу нашёл уже в чём проблема
нужно когда запускаю торнадовкую апку
в ssl_options передать
certfile и keyfile
и сейчас проблема в том что
не могу найти где эти фаилы лежат
у меня их certbot автоматически генерирует
parikLS
13.08.2016
12:21:27
поищи по маске crt
Ilya
13.08.2016
12:23:11
я в настройках Nginx прописываю путь к кам то двум фаилам
fullchain.pem
Google
Ilya
13.08.2016
12:23:34
privkey.pem
это не эти фаилы случайно?
Aleksey
13.08.2016
14:14:12
SELECT
(SELECT ap.name FROM app_pharmacy ap WHERE ap.id = al.pharmacy_id) as some
FROM
app_likes al
WHERE
al.telegram_user_id = 30
Как с помощью queryset сделать?
есть классы Pharmacy и Likes foreign key выставлены
Artem
13.08.2016
14:17:46
Pharmacy.objects.related_manager('likes').filter(telegram__user_id=userid)
Это такая хрень, на угад без модели
Тимур
13.08.2016
14:48:35
Всем привет, кто-то борол уже ошибку CommandError: Conflicting migrations detected; multiple leaf nodes in the migration graph - пока ничего внятного не могу найти по теме, недавно переехал проектом с south миграций
?
Как-то загадочно для меня этот граф строится
Ilya
13.08.2016
15:30:03
поищи по маске crt
решив пару проблем, столкнулся с этой context.load_cert_chain(ssl_options['certfile'], ssl_options.get('keyfile', None))
ssl.SSLError: [SSL] PEM lib (_ssl.c:2515)
кто-нибудь знает как эту проблему решить?
parikLS
13.08.2016
15:31:56
с таким не сталкивался, а что гугл говорит?
Ilya
13.08.2016
15:33:15
вроде как именно по 2515 ошибке
ничего, на stackoverflow открыт этот вопрос но всё пусто
вроде как проблема с certfile или keyfile
.
14.08.2016
12:36:32
Прошу помощи. Есть такой код
def addcomment(request, article_id):
if request.POST:
if 'pause' not in request.session:
form = CommentForm(request.POST)
if form.is_valid():
comment = form.save(commit=False)
comment.comments_article = Article.objects.get(id=article_id)
form.save()
request.session.set_expiry(10)
request.session['pause'] = True
else:
comment_form = CommentForm
args = {}
args.update(csrf(request))
args['article'] = Article.objects.get(id=article_id)
args['comments'] = Comments.objects.filter(comments_article_id=article_id)
args['form'] = comment_form
args['error_comment_form'] = 'Комментарий будет доступен через N секунд'
return render_to_response('article.html', args)
При добавлении комментария, я сохраню его, после чего создаю сессию, которая контралировала бы кол-во комментариев в n секунд. При живой сессии попытка вбить комментарий оборачивается выводом нужной мне строки, но как только сессия умирает, то что было введено ранее(когда сессия жива), добавляется в комментарии, а вроде как не должно. Что я делаю не так?
Так, понял что вроде работает, но обновление страницы полностью обходит эту штуку
Art
15.08.2016
19:06:48
Подскажите
all_entries = Equipments.objects.all()
entry = all_entries[0]
entry.model
entry.vendor
есть возможность передать название поле аргументом? хочу использовать это для шаблонизации хтмл формы
Artem
15.08.2016
19:09:43
Можно как угодно
Art
15.08.2016
19:10:38
ну entry.objects.value(key_name) не заработало у меня
Google
Art
15.08.2016
19:10:46
как это сделать
Artem
15.08.2016
19:11:09
А чего хочешь то?
Данные из модели в шаблон пробросить?
Art
15.08.2016
19:13:39
я в шаблон в контексте передаю все записи (all_entries = Equipments.objects.all()) и форматированный словарь где я для всех полей видимое имя написал. Теперь по тем полям я хочу вытащить значения из all_entriess
Artem
15.08.2016
19:15:10
Окей, идешь в шаблон и обращаешься к твоему словарю
Art
15.08.2016
19:15:48
columns = {
'id': 'id',
'vendor': 'Производитель',
'model': 'Модель',
'year': 'Год выпуска',
'start_of_sale': 'Начало продаж',
'end_of_sale': 'Конец продаж',
'end_of_support': 'Конец поддержки',
'options': 'Дополнительные опции'
}
all_entries = Equipments.objects.all()
context.update({ 'columns': columns, 'all_entries': all_entries })
tmpl.html
{% for entry in all_entries %}
{% for key in columns.items %}
<td class="field">{{ entry.key }}</td>
{% endfor %} {% endfor %}
вот не рабочий код
это я делаю чтобы этот хтмл шаблон к другим таблицам можно было прикрутить
Artem
15.08.2016
19:17:42
На что ругается?
parikLS
15.08.2016
19:19:32
через getattr наверно нужно
Art
15.08.2016
19:19:50
ну вот именно этот код я не запускал даже, {{ entry.key }} тут бы он искал в моей модели поле key. По этому через кастомный фильтр я хочу сделать чтобы значения я получал передав в имя поля аргументом какой то функции
parikLS
15.08.2016
19:21:10
я правда не пойму зачем тебе это
Art
15.08.2016
19:30:47
похоже то что нужно. Спасибо! У меня куча таблиц и теперь для всех таблиц я смогу использовать один шаблон. Шаблон никак к таблицам не привязан
parikLS
15.08.2016
19:34:49
а verbose_name не подходит? зачем создавать еще 1 мапу columns?
Art
15.08.2016
19:35:48
так а если языков несколько