【发布时间】:2021-11-19 09:57:12
【问题描述】:
我正在尝试使用 Django 表单来填充 Python 对象(不是 Django 模型)。 我觉得我只能:
- 构建一个简单的表单并手动填充
- 使用 Django 模型作为代理
额外的困难是表单发送 GET 请求
班级
class Search:
def __init__(self):
self.min_area = 0
self.max_area = 999
表格
from django import forms
class MainSearchForm(forms.Form):
min_area = forms.IntegerField(label="Minimum", required=False)
max_area = forms.IntegerField(label="Maximum", required=False)
景色
from django.http import HttpResponse
from django.template import loader
from front.forms.search.main import MainSearchForm
from front.gears.search import Search
def main(request):
search = Search()
form = MainSearchForm(request.GET, {})
# manual populating i want to avoid
if form.has_changed() and form.is_valid():
search.min_area = form.cleaned_data['min_area']
search.max_area = form.cleaned_data['max_area']
tpl = loader.get_template('front/search/main.html')
ctx = {
'form': form,
'search': search
}
return HttpResponse(tpl.render(ctx, request))
目前,我在视图中手动填充,但我很确定有更好的方法来做到这一点。 我是否遗漏了部分文档?
【问题讨论】:
-
你没有对你的
Search对象做任何事情吗? -
现在,我什么都不做。在进一步研究之前,我仍在试图弄清楚这个人口问题
标签: python django django-forms