用于在Django中提取POST值的模板

Dim*_*ius 2 python django post

我是Django的新手.我有客户端应用程序,它将POST请求发送到服务器以在服务器上创建新的Conference对象.Serverside代码如下所示:

new_conf.date = request.POST['date']
new_conf.name = request.POST['name']
new_conf.languages = request.POST['languages']
new_conf.is_open = request.POST['is_open']
new_conf.place = request.POST['place']
new_conf.recognition_on = request.POST['recognition_on']
Run Code Online (Sandbox Code Playgroud)

有没有办法把它写得更短?是否可以编写一些通用模板以在类似情况下使用?

bak*_*kal 5

您可以将ModelForm表单作为模型,并将其"解包"请求.将数据压缩到模型实例中

# Create a form instance from POST data.
>>> conf_form = ConferenceForm(request.POST)

# Save a new Conference object from the form's data.
>>> new_conf = conf_form.save()
Run Code Online (Sandbox Code Playgroud)

REF.https://docs.djangoproject.com/es/1.9/topics/forms/modelforms/#the-save-method

或者,对于更通用的Python解决方案,您可以创建所需的键列表并使用setattr或设置dict中的键,如下所示

for key in ['date', 'name', 'languages', ...]:
    setattr(new_conf, key, request.POST[key])

    # Or if new_conf is a dict-like obj
    new_conf[key] = request.POST[key]
Run Code Online (Sandbox Code Playgroud)