Форум сайта python.su
Добрый день, в django новичок, вопрос следующий, есть файл со списком, например , необходимо чтобы форма автоматически заполнялась полями с названиями, состоящими из части элемента списка, например первое поля называется a1, второе a2 и т.д. Выделить часть элемента я могу, но вот вывести циклом на html-страницу кодом в форме - не могу
Пробовал вот так:
class RPForm(forms.Form): with open('demoenvs', 'r') as file: old = file.read().splitlines() i = 0 b=[] for x in old: b[i] = forms.CharField(label=x.split('=')[0]) i = i + 1
Отредактировано cpunkman (Апрель 2, 2018 17:00:32)
Офлайн
ПЕчаль это то что вы не умея Джангу и Питон, начинаете делать выводы. И, разумеется, не правильные.
А что бы вам помочь для начала нужно что бы вы код нормально запостили. Вы сами свое сообщение прочитали? Видите как у вас код оформлен? Код вставляется в специальные теги code.
Ну и да - у вас ошибка вообще не об этом.
Офлайн
JOHN_16
ПЕчаль это то что вы не умея Джангу и Питон, начинаете делать выводы. И, разумеется, не правильные.А что бы вам помочь для начала нужно что бы вы код нормально запостили. Вы сами свое сообщение прочитали? Видите как у вас код оформлен? Код вставляется в специальные теги code.Ну и да - у вас ошибка вообще не об этом.
{% extends 'base.html' %} {% block content %} <h1>New post</h1> <form method="GET" class="post-form"> {% csrf_token %} {{ form.as_p }} <button type="submit" class="save btn btn-default">Save</button> </form> {% endblock %}
Отредактировано cpunkman (Апрель 2, 2018 17:00:55)
Офлайн
cpunkmanМы все очень рады за вас. Особенно за то как это приближает всех к решению, заметьте Вашей, проблемы.
Код у меня в файле form.py:
Офлайн
JOHN_16
Отредактировано cpunkman (Апрель 2, 2018 16:26:42)
Офлайн
cpunkman
Я вам написал что бы вы написали адекватно код в первом сообщение. Потому что пропало форматирование, а значит код уже не валидный. Там например пропало все то что было в квадратных скобках (а я догадываюсь что они там были). Ну и как нам помочь когда вы написали не валидный код? Что проверять то?
Если вы не внимательны к ответам других участников форума, а продолжаете писать то что не относится по настоящему к вашему вопросы - то может это вам стоит задуматься?
Офлайн
JOHN_16
cpunkmanЯ вам написал что бы вы написали адекватно код в первом сообщение. Потому что пропало форматирование, а значит код уже не валидный. Там например пропало все то что было в квадратных скобках (а я догадываюсь что они там были). Ну и как нам помочь когда вы написали не валидный код? Что проверять то?Если вы не внимательны к ответам других участников форума, а продолжаете писать то что не относится по настоящему к вашему вопросы - то может это вам стоит задуматься?
class RPForm(forms.Form): with open('demoenvs', 'r') as file: old = file.read().splitlines() i = 0 b=[] for x in old: b[i] = forms.CharField(label=x.split('=')[0]) i = i + 1
{% extends 'base.html' %} {% block content %} <h1>New post</h1> <form method="GET" class="post-form"> {% csrf_token %} {{ form.as_p }} <button type="submit" class="save btn btn-default">Save</button> </form> {% endblock %}
Отредактировано cpunkman (Апрель 2, 2018 17:01:43)
Офлайн
cpunkmanВот вам пример того что произошло:
b = forms.CharField(label=x.split('=')) IndexError: list assignment index out of range
>>> l = [0, 1, 2] >>> l[3] = 3 Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list assignment index out of range
b.append(forms.CharField(label=x.split('=')[0]))
Офлайн
JOHN_16
Офлайн
Во первых, надо понимать что я помог вам с конкретной ошибкой, но не решал вашу задачу.
Во вторых, конечно от того что вы создали кучу полей и поместили их в список магии не случится. Надо как минимум привязать эти поля к этой форме. Можно попробовать это сделать напрямую - не писать в список, a через setattr привязывать к форме.
С другой стороны есть разные решение типа такого. То есть люди как то решали этот вопрос, и вероятно стоит изучить сторонний опыт. СУдя по вашему коду сторонние решения будут со многих точек зрения более корректными.
Офлайн