@pydjango

Страница 406 из 1273
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
после отправки формы считается хорошим тоном сделать редирект на какую-нибудь другую страницу, чтобы повторно не сабмитить данные, когда пользователь эфпячит :)
Редирект не делаю спецом для того чтобы одни и теже даынне можно было засабмитить и засрать таким образом базу

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

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

а, да

Massimo
01.08.2017
07:31:20
после отправки формы считается хорошим тоном сделать редирект на какую-нибудь другую страницу, чтобы повторно не сабмитить данные, когда пользователь эфпячит :)
Хотя мне об этом говорили не однократно что нужен редирект, но именно в моем случае нужно чтобы база засиралась atpos

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

всё.

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

Mikhail
01.08.2017
07:36:11
если нет опыта, лучше на дефах писать

без чёткого понимания, как КБВ работают, можно такого нагородить...

Massimo
01.08.2017
07:36:39
если нет опыта, лучше на дефах писать
Я тоже так считал но тутор был на CBV

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 раза

Mikhail
01.08.2017
07:40:20
django rest framework

Massimo
01.08.2017
07:40:36
django rest framework
А в чем его преимущество?

Mikhail
01.08.2017
07:40:41
это огромная такая, неповоротливая куча говна

и, увы, это лучшее, что есть на рынке для реализации RESTful API на джанге

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

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 собирались?

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
не понял ни один из двух последних вопросов :/
ДА я хотел отфильтрровать queryset по related_name) Думал, что из-за него не отображались формы, но ошибка была в другом

Set
01.08.2017
08:35:14
ДА я хотел отфильтрровать queryset по related_name) Думал, что из-за него не отображались формы, но ошибка была в другом
что нужно написать lookup_expr что бы не был чувствителен к верхниму регистру

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

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
icontains скорее
пробовал не помогает

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 тоже пробовал

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