功能Django的问题

时间:2017-05-05 09:17:59

标签: python django

您好我有一个我想要了解的代码。

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

在选择参数之前是否创建用户?

1 个答案:

答案 0 :(得分:0)

为模型定义create类方法是一种常见做法。 ForecastQueue.create(...)创建ForecastQueue模型的实例 request.user只是这种方法的一个参数。