Как создать форму Django (имена и элементы) из столбца фрейма данных или столбца набора запросов.?
Как я могу создать форму, даже если это не форма Django, а обычная форма с помощью ввода? Чтобы имена и элементы полей формы были взяты из столбца фрейма данных или столбца набора запросов. Я бы хотел, чтобы поля формы не задавались изначально, а были результатом обработки данных - в виде данных из столбца фрейма данных или столбца набора запросов. Название полей формы для заполнения на основе данных в представлениях.
Может быть, отправить список или один фрейм данных или набор запросов в шаблон через JINJA?
from django import forms
# creating a form
class InputForm(forms.Form):
first_name = forms.CharField(max_length = 200)
last_name = forms.CharField(max_length = 200)
roll_number = forms.IntegerField(
help_text = "Enter 6 digit roll number"
)
password = forms.CharField(widget = forms.PasswordInput())
from django.shortcuts import render
from .forms import InputForm
# Create your views here.
def home_view(request):
context ={}
context['form']= InputForm()
return render(request, "home.html", context)
<form action = "" method = "post">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Submit">
</form>
Как создать форму Django (имена и элементы полей формы) из столбца фрейма данных или столбца набора запросов.?
Вот как вы можете сгенерировать форму, используя список имен столбцов.
# Create your views here.
def home_view(request):
context ={}
context['fields']= ['column1', 'column2', ... ]
return render(request, "home.html", context)
# home.html
<form>
{% csrf_token %}
{% for name in fields %}
<label for="{{ name }}">{{ name }}</label>
<input type="text" name="{{ name }}">
{% endfor %}
</form>
А чтобы получить имена столбцов из набора запросов или фрейма данных, вы можете сделать что-то вроде этого
# from queryset
context['fields'] = list(your_model.objects.all().values()[0])
# or from dataframe
context['fields'] = list(your_dataframe.columns.values)