首页 > 解决方案 > 创建一个填写标准 Python + Django 代码中的字段的表单

问题描述

朋友们,我找了很多都找不到,所以我决定在这里问。

我需要在 Django (Python) 中创建的页面上创建一个表单,它将基于“骨架”Python 代码创建一个文件,并仅更改我以粗体显示的特定字段并保存相同的字段。

遵循代码“骨架”。

@staticmethod
def required_slots (tracker: Tracker) -> List [Text]:
    ** Field1 ** = []
@staticmethod
def required_slots (tracker: Tracker) -> List [Text]:
    ** Field2 ** = []
@staticmethod
def required_slots (tracker: Tracker) -> List [Text]:
    ** Field3 ** = []

我将创建一个包含以下字段的表单页面:Field1、Field2 和 Field3,它们将填充以下信息:

字段 1 = 姓名 字段 2 = 年龄 字段 3 = 性别

生成的骨架代码应如下所示:

@staticmethod
def required_slots (tracker: Tracker) -> List [Text]:
    ** Name ** = []
@staticmethod
def required_slots (tracker: Tracker) -> List [Text]:
    ** Age ** = []
@staticmethod
def required_slots (tracker: Tracker) -> List [Text]:
    ** Sex ** = []

有人可以给我一个如何制作的方法吗?

标签: pythondjangopython-3.x

解决方案


如果我理解您的问题,类似以下的函数(由您的表单处理程序在验证后调用)可以让您了解如何做到这一点:

from django.template import Template, Context


def make_skeleton(form_data):
    context = Context({'Name': form_data['Field1'], 'Age': form_data['Field2'], 'Sex': form_data['Field3']})
    template = Template('''
@staticmethod
def required_slots (tracker: Tracker) -> List [Text]:
    {{ Name }} = []
@staticmethod
def required_slots (tracker: Tracker) -> List [Text]:
    {{ Age }} = []
@staticmethod
def required_slots (tracker: Tracker) -> List [Text]:
    {{ Sex }} = []
''')
    with open('/path/to/skeleton.py', 'wt') as fobj:
        fobj.write(template.render(context))

推荐阅读