
Dan
01.08.2017
05:52:10
ты в методе post не передаешь form в контекст

Massimo
01.08.2017
05:54:22
то есть def post() менять надо?

Dan
01.08.2017
05:54:49
даже не так =)
у тебя в посте форма передается ключом price_form

Google

Massimo
01.08.2017
05:55:12
return render(request, self.template_name, args)?

Dan
01.08.2017
05:55:24
поменяй на form
args = {'price_form': price_form, 'text_price': text_price, 'text_date':text_date, 'text_driver':text_driver }
->
args = {'form': price_form, 'text_price': text_price, 'text_date':text_date, 'text_driver':text_driver }
выше то что у тебя ниже то что нужно

Massimo
01.08.2017
05:56:58
А , тоесть в аргументах ключ менять не надо?

Dan
01.08.2017
05:57:15
ага

Massimo
01.08.2017
05:57:39
Но ведь самого form у меня там нигде кроме гет реквеста нету

Dan
01.08.2017
05:58:06
price_form = SchedForm(request.POST)

Massimo
01.08.2017
05:59:18
form, тогда получается по дефолту?

Mikhail
01.08.2017
07:17:30
очень много порнухи тут. Ненужной
главным образом, потому что от TemplateView наследуется, а не от FormView
Во-первых, можно переписать как-то так (навскидку)

Google


Mikhail
01.08.2017
07:24:07
class ScheduleView(UserPassesTestMixin, FormView):
template_name = 'somehtml'
form_class = SchedForm
def test_func(self):
return self.request.user.groups.filter(name='groupofcoolguys').exists()
def form_valid(self, form):
price = form.save(commit=False)
price.save()
return self.render_to_response({ # WTF-1
'price_form': SchedForm(), # WTF-2
'text_price': form.cleaned_data['price'],
'text_date': form.cleaned_data['date'],
'text_driver': form.cleaned_data.get('driver'),
})
обратите внимание на комменты # WTF-1 и WTF-2
WTF-2 означает следующее: зачем здесь инстанцировать новую, пустую форму? В контексте только что созданной записи логичнее использовать форму, которая связана с моделью
это имеет смысл, как мне кажется, для приёма "добавить ещё один чего-то-там"
что и приводит нас к метке #WTF-1
после отправки формы считается хорошим тоном сделать редирект на какую-нибудь другую страницу, чтобы повторно не сабмитить данные, когда пользователь эфпячит :)
можно даже сделать return redirect('.'). Или return redirect(request.path_info), как больше нравится
и (барабанная дробь!) в этом случае вообще ничего не нужно делать


Massimo
01.08.2017
07:29:02
Думаю добавить в поле, нде будут отображаться инфа из форм АЯКС дабы страницу не надо было обновлять и получать из ДБ инфу.

Ilgiz
01.08.2017
07:30:46

Mikhail
01.08.2017
07:30:49
лучше другую вьюху для этого сделать. Серьёзно
а, да

Massimo
01.08.2017
07:31:20

Mikhail
01.08.2017
07:31:21
для "просто" создания код вьюхи будет примерно такой
class ScheduleView(UserPassesTestMixin, CreateView):
template_name = 'somehtml'
form_class = SchedForm
def test_func(self):
return self.request.user.groups.filter(name='groupofcoolguys').exists()
всё.

Massimo
01.08.2017
07:35:20

Google

Mikhail
01.08.2017
07:36:01
наврали

Ilgiz
01.08.2017
07:36:05

Mikhail
01.08.2017
07:36:11
если нет опыта, лучше на дефах писать
без чёткого понимания, как КБВ работают, можно такого нагородить...

Massimo
01.08.2017
07:36:39

Ilgiz
01.08.2017
07:37:00
бросай CBV пиши на функциях

Massimo
01.08.2017
07:37:08

Mikhail
01.08.2017
07:37:18
практика показывает, что на серьёзных проектах гораздо проще забить и на CBV, и на DRF

Massimo
01.08.2017
07:37:20
Британец сказал учи CBV американец FBV

Mikhail
01.08.2017
07:37:29
и писать всё теплыми ламповыми функциональными вьюзами
/me переписал несколько апишных эндпойнтов с DRF на обычные вьюхи. Всё ускорилось в ~2.5 раза

Massimo
01.08.2017
07:40:08

Mikhail
01.08.2017
07:40:20
django rest framework

Massimo
01.08.2017
07:40:36

Mikhail
01.08.2017
07:40:41
это огромная такая, неповоротливая куча говна
и, увы, это лучшее, что есть на рынке для реализации RESTful API на джанге

Ruslan
01.08.2017
07:53:59
ну, а написать своё?

Ilgiz
01.08.2017
07:55:22

Mikhail
01.08.2017
07:55:57
по сути просто да :)
свои обвязки, конечно, были для драйности.

Google

Mikhail
01.08.2017
07:57:00
но поскольку я чётко знал, чего хочу от API, они работают много быстрее: не пришлось делать всякого рода generic-решения

Ilgiz
01.08.2017
07:57:23
я уже 4 месяца не писал на джанге питон перешел на nodejs "отлично себя чувствую"(нет)

Mikhail
01.08.2017
07:57:24
Самая жесть, конечно, это сериалайзеры. Очень тяжёлые
питон клёвый, зачем переходить.

Ilgiz
01.08.2017
07:58:03
Когда нету работы, приходиться

Mikhail
01.08.2017
07:58:12
жс, правда, с выходом es6 тоже стал не таким чмом, как раньше

Ilgiz
01.08.2017
07:58:13
темболее для джуна

Mikhail
01.08.2017
07:58:36
но всё же для асинхронности нужен специальный мозг :)

Ilgiz
01.08.2017
07:58:52

Admin
ERROR: S client not available

Mikhail
01.08.2017
07:59:18
если там завезли что-то типа async\await, то можно и не привыкать :)
вроде в какой-то из современных JS собирались?

Ilgiz
01.08.2017
07:59:58
и не понял вопроса )

Mikhail
01.08.2017
08:03:42
ну завезти async/await

Ilgiz
01.08.2017
08:04:27
сам проект на промисах
async/await для душы пишу

Mikhail
01.08.2017
08:04:58
ну, промисы это всё-таки коллбеки
а async\await действительно выглядит так, как будто это что-то синхронное

Google

Massimo
01.08.2017
08:09:23
queryset=Destination.objects.all()
Можно ли сделать квери по related_name?

Mikhail
01.08.2017
08:13:34
чо?

Massimo
01.08.2017
08:17:13
У меня есть две переменные с ForeignKey
models.ForeignKey('Destination', on_delete=models.CASCADE)
Он сказал, чтобы я задал related_name. Я задал
des_from = models.ForeignKey('Destination', on_delete=models.CASCADE, related_name="des_from")
des_to = models.ForeignKey('Destination', on_delete=models.CASCADE, related_name="des_to")
В Формах такой вид
forms.ModelChoiceField(queryset=Destination.objects.all(), empty_label="Не выбран", to_field_name= "name"
И на странице он не отображает эти две формы, у меня есть подозрение что queryset нужно уточнить

Set
01.08.2017
08:26:54
привет подскажите по django-filter product__name = django_filters.CharFilter(lookup_expr='iexact') хочу что бы по подходящим словам искал

Mikhail
01.08.2017
08:27:38
не понял ни один из двух последних вопросов :/

Massimo
01.08.2017
08:30:24

Set
01.08.2017
08:35:14
у меня есть товар Подарочный что бы его найти. мне надо написать с большой буквы

Massimo
01.08.2017
08:36:05

Set
01.08.2017
08:36:43

Dan
01.08.2017
08:36:46

Mikhail
01.08.2017
08:36:57
icontains скорее
а не exact

Massimo
01.08.2017
08:37:06
Object.obects.filter(name="name").first()

Set
01.08.2017
08:37:29

Dan
01.08.2017
08:37:53
нужно точное вхождение ?

Massimo
01.08.2017
08:37:58
А как сделать чтобы return self. выводил много параметров объекта?

Mikhail
01.08.2017
08:38:00
@ra_010 sqlite?

Set
01.08.2017
08:38:02
contains тоже пробовал