Задать вопрос
  • Как оставить галочку в сheckbox-ах?

    @nurzhannogerbek Автор вопроса
    Павел Аксенов: В моем варианте, не знаю как оставить галочки (атрибут сhecked) как уже говорил, поэтому удобным назвать этот вариант трудно. В вашем варианте нужно подумать как поставить название. В обеих вариантах есть плюсы и минусы я так пойму))) В голову пришла идея, правда она смутная. Что вы думаете на счет неё. А может быть в forms.py еще добавить поле name. А потом в ручную рендерить шаблон и указать значение полей is_visable и name вручную. Не укладывается как-то в голове правда.

    Что-то вроде этого:
    {% for product_form in product_formset %}
         {% for field in product_form %}
              <input type="checkbox" name="" value="(field.is_visable.value)">(field.name.value)</input>
         {% endfor %}
    {% endfor %}
  • Как оставить галочку в сheckbox-ах?

    @nurzhannogerbek Автор вопроса
    Павел Аксенов: Ответ на ваш второй комментарий: Код указанный в посте я не тестировал, но по идее он должен изменять значения поля is_visable на True у тех продуктов, которые были отмечены. Проблема была в том, что при повторном открытии формы необходимо было оставить галочки у тех чексбоктов, у которых поле is_visable уже имеет значение True. Я так подумал наверное предложенный вами FormSets будет получше, поскольку как я понимаю это должно быть своего рода набор форм редактирования. И будут выводится текущие значения поля is_visable. Eсли True будет стоять галочка, а если False то не будет. Это как раз то что нужно, но не могу разобраться с views.
  • Как оставить галочку в сheckbox-ах?

    @nurzhannogerbek Автор вопроса
    Павел Аксенов: Спасибо за ссылку. Почитал и кажется это то что искал, но есть пару нюансов, которые хотел уточнить у вас, потому что не укладываются в голове. В статье описано как создавать новые записи с помощью FormSets. В моем же случаи получается набор форм для редактирования. Если использовать данную запись
    ProductFormSet = modelformset_factory(Product, fields=('is_visible',))
    я так понимаю выведутся просто чексбоксы? Хотелось бы как то поставить названия продукта возле чексбокса, чтобы пользователь знал что изменяет. Что можете подсказать по этому поводу? Внизу привел код из views.py и не могу понять нужно ли указывать instance в форме и как форма узнает какую именно запись редактирует.

    views.py:
    def manage_products(request):
        data = dict()
        ProductFormSet = modelformset_factory(Product, fields=('is_visable',))
        if request.method == 'POST':
            product_formset = ProductFormSet(request.POST)
            if product_formset.is_valid():
                product_formset.save()
                data['form_is_valid'] = True
                data['html_product'] = render_to_string('project/product_list.html', {'product_formset': product_formset})
            else:
                data['form_is_valid'] = False
        else:
            product_formset= ProductFormSet()
        data['html_manage_products_form'] = render_to_string('project/manage_products.html', {'product_formset': product_formset}, request=request)
        return JsonResponse(data)
  • Почему содержимое формы меняется?

    @nurzhannogerbek Автор вопроса
    Павел Аксенов: Cпасибо большое еще раз! Я уже разобрался, нашел другое решение. =)
  • Почему содержимое формы меняется?

    @nurzhannogerbek Автор вопроса
    Павел Аксенов: Cпасибо большое! Вы были правы. Мне нужно быть более внимательным! Можно еще один маленький вопрос. Когда все данные были добавлены в БД, форма становится пустая, что логично. Я хотел добавить некое сообщение: "Все данные уже добавлены" в форму. `{% empty %}` почему-то не помогло, как вы думаете почему? Получается, когда все данные добавлены, в сhoise попадает пустой список `[]`.

    requirement_add.html:
    {% load widget_tweaks %}
    <form method="post" action="{% url 'project:requirement_add' project_code=project.code %}">
            {% for field in form %}
                    {% render_field field class="form-control" %}
            {% empty %}
                <p>Все данные уже добавлены</p>
            {% endfor %}
    </form>
  • Почему содержимое формы меняется?

    @nurzhannogerbek Автор вопроса
    Павел Аксенов: на данный код ругается. Пишет:
    File "C:\Users\Nurzhan\PycharmProjects\RMS\project\views.py", line 615, in requirement_add
        form = RequirementForm(request.POST, final_list=final_list)
    TypeError: __init__() got multiple values for argument 'final_list'
  • Почему содержимое формы меняется?

    @nurzhannogerbek Автор вопроса
    Павел Аксенов: Здравствуйте! Я обновил код view. Можете взглянуть? Поставил form = RequirementForm(request.POST, final_list) как вы и сказали, но после выборе checkbox-ов и попытке добавить данные (click submit button) выдает такую вот ошибку:

    Traceback (most recent call last):
      File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\handlers\exception.py", line 39, in inner
        response = get_response(request)
      File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\handlers\base.py", line 187, in _get_response
        response = self.process_exception_by_middleware(e, request)
      File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\core\handlers\base.py", line 185, in _get_response
        response = wrapped_callback(request, *callback_args, **callback_kwargs)
      File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\reversion\revisions.py", line 296, in do_revision_context
        return func(*args, **kwargs)
      File "C:\Users\Nurzhan\PycharmProjects\RMS\project\views.py", line 616, in requirement_add
        if form.is_valid():
      File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\forms\forms.py", line 169, in is_valid
        return self.is_bound and not self.errors
      File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\forms\forms.py", line 161, in errors
        self.full_clean()
      File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\forms\forms.py", line 370, in full_clean
        self._clean_fields()
      File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\forms\forms.py", line 382, in _clean_fields
        value = field.widget.value_from_datadict(self.data, self.files, self.add_prefix(name))
      File "C:\Users\Nurzhan\AppData\Local\Programs\Python\Python35-32\lib\site-packages\django\forms\widgets.py", line 626, in value_from_datadict
        return data.get(name)
    AttributeError: 'list' object has no attribute 'get'


    Также в виде эксперимента в форме добавил print([(x[0], x[1]) for x in final_list]), чтобы узнать что уходит в `сhoises`. В консоль при открытии формы выводится: `[('R', 'Требования к отчетам'), ('DF', 'Требования к представлению данных')]`. Все правильно, но затем при нажатии кнопки submit: `[('c', 's'), ('s', 'y')]` и дальше вышестоящая ошибку. Самое интересное, непонятно откуда эти значения вообще берутся. У вас есть идеи по этому поводу?
  • Редактируемое поле с возможность выбора?

    @nurzhannogerbek Автор вопроса
    Павел Аксенов: Пользователь Anatoly Scherbakov утверждает, что `django-select2` не поддерживает редактирование выбранного из списка значения. У вас есть идеи как можно было бы получить подобный эффект? Может какие-то изменения внести можно в django-select2?
  • Редактируемое поле с возможность выбора?

    @nurzhannogerbek Автор вопроса
    Anatoly Scherbakov: Здравствуйте! Если вкратце, подобное редактируемое поле нужно в моем проекте для того, чтобы избавить пользователя от рутинного ввода шаблонных вещей в начали. На рисунке просто картинка, которую нашел в интернете: jQuery Editable Select. Данные из списка хранятся у меня в отдельной модели, поэтому нужно как то программно в Django указать. У вас есть какие нибудь еще предложения?)
  • Редактируемое поле с возможность выбора?

    @nurzhannogerbek Автор вопроса
    Павел Аксенов: Cпасибо за ссылку, как именно мне использовать данное приложение? Бегло просмотрев, сложилось впечатление, что данное приложение не совсем подойдет в моем случаи, хотя могу ошибаться. Насколько я понял Django-Select2 подходит для так называемых multiple select, где выбираются из списка значения и закрепляются в виде тега. Хотя возможно данное приложение поддерживает выбор значения из списка и редактирования его и я не заметил. Можете ли указать, я немного запутался)
  • Как использовать Datalist в Django?

    @nurzhannogerbek
    BlastPy: Можно поинтересоваться, а вы пробовали стилизовать `datalist` с помощью `сss`?! Пытаюсь создать поле, где есть возможность выбора из списка и редактирования выбранного значения.
  • Почему в template не выводится кнопка?

    @nurzhannogerbek Автор вопроса
    kazmiruk: Спасибо за замечание! Буду более бдителен в следующий раз с названиями переменных и вправду очень запутывает.
  • Почему в template не выводится кнопка?

    @nurzhannogerbek Автор вопроса
    Junior93: Попробовал в template `{% if not purpose_is_not_exist %}` и заработало. Так же пробовал во view изменить на `purpose_is_not_exist = not Purpose.objects.exclude(project=project_code).exists()` тоже заработало. Немного запутался)
  • Как добавить атрибут disabled в элементы input генерируемый MultipleChoiceField?

    @nurzhannogerbek Автор вопроса
    javedimka: Здравствуйте! Я сам не особо доволен, текущим положением дел. К тому же не имею понятие с какого бока подойти, чтобы изменить что-либо в MultipleChoiceField. Основную идею вы почти уловили. На текущий момент у пользователя есть два варианта добавления требования к определенному проекту. Либо самому вписать название требования или выбрать через галочки уже существующие. С последним как раз и проблемf. Потому, что не знаю как уведомить пользователя что требование возле галочки (а если быть точнее название требования) уже есть. Меня заинтересовал ваш последний абзац. Можете ли вы более детально раскрыть вашу мысль? Не могу до конца уловить смысл. То есть создать некий список заранее и уже потом через виджет select добавлять нужные требования в m2m поле?
  • Как добавить атрибут disabled в элементы input генерируемый MultipleChoiceField?

    @nurzhannogerbek Автор вопроса
    Сергей Горностаев: да, вы правы, в этом и есть сложность. Есть ли у вас какие нибудь более менее конкретные примеры? Как именно указать куда ставить атрибут disabled, а куда нет понятие не имею. Думаю рендерить в ручную в шаблоне не мой вариант, так как кортеж CHOICES может меняться и тогда нужно будет менять и шаблон. Была у меня такая задумка во view, где инициализирую форму form = RequirementAddForm(request.POST) в конструктор как-то передавать список symbols (symbols = form.cleaned_data.get('symbol')) и уже возможно в form как-то манипулировать ими. Вплоть до того, чтобы выводимый другой обновленный список через MultipleChoiceField на основе тех данных из списка symbols []. Вот только не совсем уверен, что это можно реализовать.
  • Как добавить атрибут disabled в элементы input генерируемый MultipleChoiceField?

    @nurzhannogerbek Автор вопроса
    Сергей Горностаев: Здравствуйте! Я в виде примера просто сказал третий input. Просто хотелось знать можно ли как-то повлиять на генерируемый MultipleChoiceField html код. Если более подробно, то цель была следующая. Как уже говорил ранее форма выводит данные из кортежа CHOICES. Пользователь кликает checkbox`ы и во view я получаю в виде списка данные из прокликанных checkbox`ов. На основе полученных данных создаю объекты (в моем случаи Требования). Добавил в пост код из models и view для ясности. Ну так вот, Хотел бы сделать chekbox`ы некликабельными (non-clickable) для тех данных которые уже были использованы и которые есть в базе.
  • Почему не открывается модальное окно?

    @nurzhannogerbek Автор вопроса
    Lumore: Получается содержимое первого модального окна, включая кнопку, загружается через AJAX. Я попробовал следующий код. В 1 варианте при нажатии срабатывает alert, но вот в консоль ничего не выводится. Во 2 варианте при нажатии кнопки не срабатывает ни alert, ни console.log. Запутался окончательно. Раз откликается на alert в первом варианте можно ли считать, что DOM видит кнопку, которая была загружена через AJAX или все же нет?! Видите ли вы выход из данной странной ситуации?

    $(document).on("click","#requirement-add-button",function(){
            alert('Вы нажали кнопку!');
            console.log('Вы нажали кнопку!');
    });
    
    $("#requirement-add-button").click(function(){
            alert('Вы нажали кнопку!');
            console.log('Вы нажали кнопку!');
     });
  • Почему не открывается модальное окно?

    @nurzhannogerbek Автор вопроса
    Lumore: Пробовал вами предложенные варианты, к сожалению не помогло. При нажатии на кнопку по прежнему закрывается первое модальное окно(id='modal-lg'), а второе не открывается (id='modal'). Можно ли как-то проверить 3 пункт?
  • Почему не открывается модальное окно?

    @nurzhannogerbek Автор вопроса
    Здравствуйте! Я открыл инструмент разработчика и в разделе веб-консоль нет никаких ошибок.

    Есть лишь пару предупреждений такого рода: `Ошибка при парсинге значения «display». Потерянное объявление. bootstrap.min.css:6:102063`

    К тому же заметил следующее:
    1) При открытии первого модального окна:
    GET XHR (url_adress) [HTTP/1.1 200 OK 17мс]

    2) При нажатии на кнопку, которая находится внутри первого модального окна выводит:
    POST XHR (url_adress) [HTTP/1.1 200 OK 23мс]


    При этом нужно отметить, что url_adress одинаковые в обоих случаях. Что вы думаете по этому поводу и что вы думаете по поводу моего вышестоящего кода?
  • Как правильно сделать множественный выбор?

    @nurzhannogerbek Автор вопроса
    dimonchik2013: Выводит следующую ошибку:


    Traceback (most recent call last):
    File "C:\Users\Nurzhan\PycharmProjects\RMS\project\views.py", line 597, in requirement_add
    requirement.name = symbol.get_symbol_display()
    AttributeError: 'str' object has no attribute 'get_symbol_display'


    Не пойму как правильно записать вторые, человекочитаемые значения списка в поле name. Есть ли у вас какие нибудь идеи?