你好,我有一个我要理解的代码。
def custom_forecast(request, pk=None):
if pk is not None:
param = get_object_or_404(Parameters.objects.filter(Q(user=request.user) | Q(system_parameter=True)), pk=pk) #iza l model
form = ForecastForm(request.POST or None, instance=param)
else:
form = ForecastForm(request.POST or None)
if request.method == 'POST':
if form.is_valid():
if 'save' in request.POST:#kerml sayev
obj = form.save(commit=False)
obj.user = request.user
obj.type = "custom_forecast"
obj.save()
messages.info(request, 'Saved!')
return redirect(obj.get_forecast_url())
else:
obj = ForecastQueue.create(request.user, 'custom_forecast', json.dumps(request.POST)
obj.save()
return redirect(obj.get_url())
else:
data = { 'active_page': 'custom_forecast',
'form': form,
'display_result': False }
else:
data = { 'active_page': 'custom_forecast',
'form': form,
'display_result': False }
data['system_params'] = Parameters.objects.filter(system_parameter=True).all()
return render(request, 'custom_forecast.html', data)
基于我的基本知识,如果参数不在数据库中(PK = none(,则是一种显示预测表单的方法第一个:
else:
obj = ForecastQueue.create(request.user, 'custom_forecast', json.dumps(request.POST)
obj.save()
是在选择参数之前创建用户?
这是定义为模型创建类方法的常见做法。 ForecastQueue.create(...)
创建ForecastQueue
模型的实例。
request.user
只是此方法的参数。