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

问题描述 投票:0回答:1

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

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

我的问题是:是否可以将一些值从查询传递到我的models.py文件?例如,在我的“models.py”文件中,我有一个名为“id”的字段,我想将“doente”字段中查询的所有记录作为“id”传递给“models.py”文件。

我的形式是这样的: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 do autorizante”和“Data de nascimento do autorizante”在我的models.py中,来自字段的值:“GTS do autorizado”和“Data de nascimento do 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的连接时,我尝试获取来自帖子的其他值。

python django cx-oracle
1个回答
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')
© www.soinside.com 2019 - 2024. All rights reserved.