@pydjango
Django

Полезная информация и правила: https://github.com/amureki/django_faq Вакансии и резюме: @django_jobs Пофлудить идём сюда: @django_flood Статистика чата: combot.org/chat/-1001063854692

1741 members

Архив канала @pydjango 4 ноября 2016 г.

06:43:28 ДП
User 136075826
ну вот недавно делал что-то похожее так:

в файле templatetags:
@register.assignment_tag
def get_search_form():
    form = SimpleSearchForm()
    return form

в шаблоне:
{% load templatetags %}
...
{% get_search_form as search_form %}

и дальше юзать как вздумается, можно, понятно вернуть целый словарик контекста а не только одну форму

Ну и дальше, например, инклюжу этот шаблон к какому-нибудь базовому, в итоге на всех наследуемых страницах оно отображается
01:58:48 ПП
User 378433
а почему assignment?
01:59:26 ПП
User 378433
в принципе тут inclusion как раз нужен
05:24:49 ПП
User 226624052
Кто-то с хероку работал?
05:25:23 ПП
User 105952369
User 226624052
Кто-то с хероку работал?
да
05:25:32 ПП
User 226624052
Как мне в CLI переключить аппс?
05:26:03 ПП
User 226624052
Документация хероку открывает овердохуя вкладок
05:26:08 ПП
User 105952369
чуть менее конкретный вопрос
05:26:25 ПП
User 105952369
что ты хочешь сделать
05:26:25 ПП
User 226624052
heroku apps
05:26:58 ПП
User 226624052
Выбрать приложение
05:27:10 ПП
User 105952369
heroku apps:{app_name}
05:27:21 ПП
User 105952369
должно как-то так там быть
05:28:00 ПП
User 226624052
Ну, вот это как-то и не пашет
05:28:02 ПП
10:02:43 ПП
User 128333406
нужно сделать валидацию формы и сохранить в БД. В форме есть обязательное FK поле, но юзеру оно не показывается, его нужно заполнить из view перед валидацией. Как сделать, подскажите пожалуйста?
10:10:51 ПП
User 100243492
да как угодно, чему только настроение пожелает! Как ублагорассудится роза ветров :)
10:23:08 ПП
User 128333406
да там разные способо на SO, и все костылями кажутся
10:23:42 ПП
User 128333406
думаю вот в POST словарь добавить попробовать
11:03:46 ПП
11:03:49 ПП
User 378433
Не надо так
11:04:16 ПП
11:04:41 ПП
User 128333406
а просто установить form.field=value перед валидацией формы нельзя. Это не будет работать
11:04:49 ПП
User 177174313
CreateView
11:05:32 ПП
User 128333406
User 177174313
CreateView
это для CBV будет работать?
11:05:40 ПП
11:05:53 ПП
User 128333406
у меня FBV (
11:06:21 ПП
11:06:43 ПП
User 177174313
ну как то так
11:06:57 ПП
User 128333406
наверное придется делать копию формы, но без этого обязательного FK поля. А потом пере form.save добавлять значение. Так на SO пишут
11:07:12 ПП
User 100243492
User 128333406
у меня FBV (
ну возьми, да запили класс, в чем проблема то?
11:07:28 ПП
User 128333406
да весь проект на FBV
11:07:52 ПП
User 100243492
стоит только один раз начать писать на классах, как и не замечаешь, что и хелперы на классах
11:07:58 ПП
User 128333406
хотя может это как раз вариант написать CBV, раз через FBV такие костыли
11:09:01 ПП
User 128333406
спасибо за советы
11:09:12 ПП
User 100243492
User 177174313
неплохо читабельно ^_^
11:15:28 ПП
User 378433
User 128333406
а просто установить form.field=value перед валидацией формы нельзя. Это не будет работать
Почему?
11:15:52 ПП
User 128333406
User 378433
Почему?
не работает просто, форма не проходит валидацию
11:16:10 ПП
User 378433
Да не может такого быть.
11:17:08 ПП
User 128333406
если сделать модельку и по ней форму, и попробовать заполнить обязательное FK поле из FBV, просто сделав form.fk_field=value перед валидацией, то не хочет работать
11:17:13 ПП
User 128333406
можешь проверить
11:17:40 ПП
User 378433
а собсна вопрос, чем ты пытаешься его заполнить?
11:18:06 ПП
User 128333406
у меня там fk на другую модель. ID вставляю
11:18:24 ПП
User 378433
а надо сссылку на инстанс
11:18:44 ПП
User 378433
для ID заполнять надо form.fk_field_id
11:19:09 ПП
User 128333406
User 378433
для ID заполнять надо form.fk_field_id
я и так писал
11:20:13 ПП
User 128333406
вот если интересно, попробуй сделать так. Вот даже на SO таких ответов нет, наверное потому, что так не работает
11:20:22 ПП
User 378433
хотя стоп.
11:22:08 ПП
User 378433
можно и в сам fk_field записывать id вроде
11:22:46 ПП
User 378433
а можно поле сделать не обязатеьным?
11:23:25 ПП
11:23:28 ПП
User 128333406
да может и можно, я там пачку вариантов сделал на всякий, когда тестил. Вот не работало. А вот если вывести в шаблоне это поле и заполнить, а потом перезаписать твоим способом, то все ОК.
11:23:29 ПП
User 378433
вообще конечно я туплю.
11:23:36 ПП
User 378433
и ввожу людей в заблуждение как обычно.
11:23:46 ПП
User 378433
ID нужно вставлять в form.data
11:23:55 ПП
User 378433
form.data['fk_field'] = id
11:23:59 ПП
User 378433
потом валидировать
11:24:37 ПП
User 128333406
User 378433
form.data['fk_field'] = id
ну щас пробну
11:24:44 ПП
User 378433
а вот после валидации можно делать так:
instance = form.save(commit=False)
instance.fk_field = id
instance.save()
11:24:53 ПП
User 378433
господи, за что мне деньги платять вообще
11:25:40 ПП
User 128333406
User 378433
а вот после валидации можно делать так:
instance = form.save(commit=False)
instance.fk_field = id
instance.save()
вот так можно, при условии, что FK поле обязательное уже заполнено. Но у меня в том и проблема, что я не могу просто его заполнить
11:25:51 ПП
User 128333406
т.е. перезаписать
11:26:03 ПП
User 128333406
либо для необязательного что-то добавить
11:26:11 ПП
User 100243492
ну укажи id or None
11:26:11 ПП
User 128333406
таким способом можно
11:26:20 ПП
User 100243492
и в поле FK запишется никуя
11:26:23 ПП
User 378433
User 378433
form.data['fk_field'] = id
ну тебе нужно его впихнуть вот так
11:26:45 ПП
User 128333406
щас пробую
11:33:44 ПП
User 128333406
очень странно) проходит валидацию, но ничего не сохраняет)
11:39:18 ПП
User 378433
инстанс забинден?
11:40:01 ПП
User 128333406
извини, не совсем понял
11:41:05 ПП
User 378433
ну если сохранять объект надо, то в моделформ надо передать параметр instance с объектом, который обновляется
11:41:20 ПП
User 378433
если новый создать - то не указывать
11:41:37 ПП
User 378433
может он создает новые?
11:41:42 ПП
User 378433
а не обновляет
11:42:26 ПП
User 128333406
не, у меня содание нового объекта там должно быть
11:42:34 ПП
User 128333406
я не передаю instance
11:42:40 ПП
11:42:44 ПП
User 378433
ну тогда хз
11:43:03 ПП
User 128333406
ну как разберусь, напишу, в чем причина была. Если пойму
11:58:08 ПП
User 128333406
вообще работает другой, плохой способ. У меня была форма CompetitionProgrammeForm(ModelForm). Я ее копию сделал - CompetitionProgrammeForm1(ModelForm), только удалил обязательное FK поле. А потом во view сделал после валидации
            programme = form.save(commit=False)
            programme.competition_id = competition_id
            programme.save()