Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Вывести поля в форме списком из файла [RSS Feed]

#1 Апрель 2, 2018 15:10:50

cpunkman
Зарегистрирован: 2018-04-02
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести поля в форме списком из файла


Добрый день, в 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

Но в ответ:

b = forms.CharField(label=x.split('=')) IndexError: list assignment index out of range

Помогите люди добрые, как сие сделать. Может вообще невозможно динамически выводить поля в форму, только пуками прописывать. Печаль…

Отредактировано cpunkman (Апрель 2, 2018 17:00:32)

Офлайн

#2 Апрель 2, 2018 15:20:20

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Вывести поля в форме списком из файла

ПЕчаль это то что вы не умея Джангу и Питон, начинаете делать выводы. И, разумеется, не правильные.
А что бы вам помочь для начала нужно что бы вы код нормально запостили. Вы сами свое сообщение прочитали? Видите как у вас код оформлен? Код вставляется в специальные теги code.

Ну и да - у вас ошибка вообще не об этом.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Апрель 2, 2018 15:47:25

cpunkman
Зарегистрирован: 2018-04-02
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести поля в форме списком из файла

JOHN_16
ПЕчаль это то что вы не умея Джангу и Питон, начинаете делать выводы. И, разумеется, не правильные.А что бы вам помочь для начала нужно что бы вы код нормально запостили. Вы сами свое сообщение прочитали? Видите как у вас код оформлен? Код вставляется в специальные теги code.Ну и да - у вас ошибка вообще не об этом.

Код у меня в файле form.py, затем в файле rpdata.html:

 {% 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)

Офлайн

#4 Апрель 2, 2018 16:10:11

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Вывести поля в форме списком из файла

cpunkman
Код у меня в файле form.py:
Мы все очень рады за вас. Особенно за то как это приближает всех к решению, заметьте Вашей, проблемы.
Если вы не поняли, это был намек



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Апрель 2, 2018 16:21:41

cpunkman
Зарегистрирован: 2018-04-02
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести поля в форме списком из файла

JOHN_16

Я писал следуя стандартным рекомендациям по Django, которые нашел в интернете, в html файл вставляется форма из файла на питоне, файлы я привел выше.
Форма не отрабатывает вывод в цикле, об этом я написал.
Если нужны еще какие-то данные, я напишу.

Послушайте, если вы не можете, либо не хотите помогать - не пишите вообще, не надо намеков и снисхождения, я сюда пришел за адекватным диалогом в поисках решения, а не за одолжениями, снисхождениями и издевательствами.
Идите упражняйтесь в ношении короны и словесных оборотах в другое место, заранее признателен.

Отредактировано cpunkman (Апрель 2, 2018 16:26:42)

Офлайн

#6 Апрель 2, 2018 16:36:54

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Вывести поля в форме списком из файла

cpunkman
Я вам написал что бы вы написали адекватно код в первом сообщение. Потому что пропало форматирование, а значит код уже не валидный. Там например пропало все то что было в квадратных скобках (а я догадываюсь что они там были). Ну и как нам помочь когда вы написали не валидный код? Что проверять то?
Если вы не внимательны к ответам других участников форума, а продолжаете писать то что не относится по настоящему к вашему вопросы - то может это вам стоит задуматься?



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#7 Апрель 2, 2018 16:58:54

cpunkman
Зарегистрирован: 2018-04-02
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести поля в форме списком из файла

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

Вроде бы сейчас нигде не ошибся.
Я не нашел способ вывести данные в форму циклом (либо иным способом, не описывая в программе каждое поле) из файла, чтобы данные из файла были в качестве названия полей. Затем опять же получить данные из формы в файл (в другой файл), не описывая каждое поле (циклом, либо еще как-то)
Повторюсь, занимаюсь с django вторую неделю, с питоном месяц наверное, сроки горят.

Файл html:

 {% 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)

Офлайн

#8 Апрель 2, 2018 17:07:24

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Вывести поля в форме списком из файла

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



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#9 Апрель 2, 2018 17:21:33

cpunkman
Зарегистрирован: 2018-04-02
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести поля в форме списком из файла

JOHN_16

Да, я понимаю что почему-то выходит индекс из диапазона, но не понимаю почему.
Так как вы написали поле не выводит. Ни названия, ни поля.
Я читал, что append добавляет к списку значения, пробовал как-то с ним, не так, как вы предложили, но тоже не получилось.

Офлайн

#10 Апрель 2, 2018 18:08:25

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Вывести поля в форме списком из файла

Во первых, надо понимать что я помог вам с конкретной ошибкой, но не решал вашу задачу.
Во вторых, конечно от того что вы создали кучу полей и поместили их в список магии не случится. Надо как минимум привязать эти поля к этой форме. Можно попробовать это сделать напрямую - не писать в список, a через setattr привязывать к форме.
С другой стороны есть разные решение типа такого. То есть люди как то решали этот вопрос, и вероятно стоит изучить сторонний опыт. СУдя по вашему коду сторонние решения будут со многих точек зрения более корректными.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

  • Начало
  • » Django
  • » Вывести поля в форме списком из файла[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version