我是Django的新手,并且有一个Q &一个项目。对于每个问题,您可能会有多个已存在的标签或放置新的标签。问题保存之前应该创建新的标签。我如何正确解决这个问题?到目前为止,我有:Django在保存新对象之前添加主键
def question_add(request):
# redirect user to login page if not authenticated
if not request.user.is_authenticated():
return render(request, 'account/login.html')
# if this is a POST request we need to process the form data
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = QuestionForm(request.POST)
if form.is_valid():
# process the data in form.cleaned_data as required
instance = form.save(commit=False)
instance.created_by = request.user
instance.save()
messages.success(request, 'Question added with success.')
# redirect to the main page:
return HttpResponseRedirect('/')
else:
messages.warning(request, 'Please correct the errors.')
# if a GET (or any other method) we'll create a blank form
else:
form = QuestionForm()
return render(request, 'question/add.html', {'form': form})
这应该是做事先form.is_valid()或者是否存在这样一个神奇的方法?
尝试在你的'form.is_valid()',两个'.save()'功能之间。 –
备注:要重定向未经身份验证的用户,您可以使用login_required装饰器:https://docs.djangoproject.com/en/1.10/topics/auth/default/#django.contrib.auth.decorators.login_required –
@AdamStarrh :你有一个例子...? thx – cwhisperer