gpt4 book ai didi

python - 如何向 request.POST 添加信息?

转载 作者:太空狗 更新时间:2023-10-30 02:49:06 25 4
gpt4 key购买 nike

当用户使用表单创建内容时,所有信息都通过表单提交,该表单通过 AJAX 调用发送到以下 View :

def goal_create(request):
if request.method == 'POST':
user = request.user
request.POST[user] = user.id
errors = form_validate(request, AddGoalForm, Goal)

当我尝试修改 request.POST 字典并将用户 ID 添加到模型实例时出现错误。我想添加它,所以在下一步中(当它进入 form_validate 时),它将为我创建一个新的模型实例。这是 form_validate,它根据 ModelForm 验证表单。

def form_validate(request, form, model):
form = form(request.POST)
if form.is_valid():
new = form.save()
else:
return form.errors.items()

这是我正在使用的模型:

class Goal(models.Model):
goal_name = models.CharField(max_length=200, blank=False)
user = models.ForeignKey(User, null=True, blank=True)
created_at = models.DateField(auto_now_add=True)
updated_at = models.DateField(auto_now=True)

另一个问题是,即使 goal_name 的属性为 blank=False,并且我创建了一个带有空白 goal_name 的新目标,它仍然表示该表单是_valid() 并保存该表单。

最佳答案

    if request.method == 'POST':

user = request.user
post_values = request.POST.copy()

post_values['user'] = user.id
form = MyForm(post_values)

if form.is_valid():
form.save()
return HttpResponseRedirect(reverse('success'))
return HttpResponseRedirect(reverse('error'))

p.s 这是一种快速修复方法,但不是一种非常优雅的使用方法。虽然你什么时候使用它都没有问题

关于python - 如何向 request.POST 添加信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9662414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com