【问题标题】:Create a form that fills in fields within standard Python + Django code创建一个填写标准 Python + Django 代码中的字段的表单
【发布时间】:2020-01-01 17:32:42
【问题描述】:

朋友们,找了好久都没找到,所以决定在这里问一下。

我需要在用 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 ** = []

谁能告诉我制作方法?

【问题讨论】:

  • 欢迎来到 SO。照原样,您的问题要么太宽泛(如果您要求完整的解决方案),要么不清楚。请编辑您的帖子以指定您尝试过的内容以及您遇到障碍的确切位置(cf stackoverflow.com/help/how-to-ask
  • 只是一个提示:django 带有一个模板引擎,适用于任何类型的文本格式 - 它不限于 html...

标签: python django python-3.x


【解决方案1】:

如果我理解您的问题,类似以下的函数(由您的表单处理程序在验证后调用)可以让您了解如何执行此操作:

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

【讨论】:

  • 小而完美。
猜你喜欢
  • 2017-06-02
  • 2014-10-16
  • 1970-01-01
  • 2018-03-10
  • 2014-09-22
  • 1970-01-01
  • 1970-01-01
  • 2013-10-18
  • 1970-01-01
相关资源
最近更新 更多