ProductFormSet = modelformset_factory(Product, fields=('is_visible',))
я так понимаю выведутся просто чексбоксы? Хотелось бы как то поставить названия продукта возле чексбокса, чтобы пользователь знал что изменяет. Что можете подсказать по этому поводу? Внизу привел код из views.py и не могу понять нужно ли указывать instance в форме и как форма узнает какую именно запись редактирует.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)
{% 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>
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'
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'
form = RequirementAddForm(request.POST)
в конструктор как-то передавать список symbols (symbols = form.cleaned_data.get('symbol')
) и уже возможно в form как-то манипулировать ими. Вплоть до того, чтобы выводимый другой обновленный список через MultipleChoiceField на основе тех данных из списка symbols []. Вот только не совсем уверен, что это можно реализовать. $(document).on("click","#requirement-add-button",function(){
alert('Вы нажали кнопку!');
console.log('Вы нажали кнопку!');
});
$("#requirement-add-button").click(function(){
alert('Вы нажали кнопку!');
console.log('Вы нажали кнопку!');
});
GET XHR (url_adress) [HTTP/1.1 200 OK 17мс]
POST XHR (url_adress) [HTTP/1.1 200 OK 23мс]
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'
Что-то вроде этого: