是否可以将查询中的值传递给django中的models.py?

时间:2018-01-04 17:44:09

标签: python django cx-oracle

我试图创建一个应用程序,其中一个人插入一个id和一个人的生日日期并输出一些东西。我的 这里的疑问是:使用以下几个id和生日日期查询(来自oracle):

connection = cx_Oracle.connect(...) 
cursor = connection.cursor()
cursor.execute("query")

我的问题是:是否可以将查询中的某些值传递给models.py文件?例如,在我的" models.py"文件我有一个名为" id"并且我想传递来自该字段中查询的所有记录" doente"到" models.py"归档为" id"。

我的表格是这样的: Form

和我的models.py文件是:

class PatientTutor(models.Model):
    id = models.AutoField(primary_key=True)
    username = models.CharField(max_length = 8)
    patientID = models.CharField(max_length = 8)
    created = models.DateTimeField(auto_now_add = True)
    birthday = models.DateField(blank=True, default=None)
    birthdayPatient = models.DateField(blank=True, default=None)

其中来自字段的值:" GTS进行自动调整"和" Data de nascimento做autorizante"在我的models.py和字段中的值:" GTS做autorizado"和" Data de nascimento做autorizado"来自查询。我想将查询中的所有值复制到我的models.py文件中,但我不知道是否可以。

编辑:

我的views.py文件如下所示:

def mostraFormTutorPaciente (request):
return render(request, 'CartaoCliente/mostraFormTutorPaciente.html')

def TutorPaciente (request):
if request.method == 'POST':

    AutorizanteGTS = PatientTutor.objects.get(id = request.POST['AutorizanteGts'])
    NascAutorizante = PatientTutor.objects.get(birthday = request.POST['DtNascAutorizante'])

    connection = cx_Oracle.connect("....")

    cursor = connection.cursor()
    cursor.execute("select t_doente, doente, nome, dt_nasc, telef1, telef2" + \
            "from gh.sd_doente where doente<>'" + patientID  + \
            "'and nvl(flag_anulado, 'N')<>'S' and dt_nasc >= sysdate-18*365 and (trim(telef1) in (" + inClause + ") or trim(telef2) in (" + inClause + "))")

    registos =[]
    for record in cursor:
        registos.append(record)

    return render(request, 'CartaoCliente/TutorPaciente.html', )

在这里,我尝试获取来自帖子的值,并且在我的models.py中,当我建立与oracle db的连接时,我尝试获取来自帖子的其他值。

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。

发布表单后,您可以从oracle数据库中获取数据,然后将其保存到模型对象中。

使用此示例视图查看其工作原理:

def my_view(request):
    if request.method == 'POST':
    form = MyForm(request.POST)

    if form.is_valid():
        # get the data from the oracle DB
        oracle_data = some_function()

        # create a model object that saves the data
        obj = MyObject.objects.create(
              birthday=oracle_data['birthdate']
              some_other_field=some_value
              )

        # everything worked out, return a response
        return render(request, 'some-template.html')

    # for data was not valid, return an error
    return render(request, 'error-template.html')