gpt4 book ai didi

django - 获取 而不是值

转载 作者:行者123 更新时间:2023-12-05 04:35:06 29 4
gpt4 key购买 nike

我想将所有模型字段写入一个文本文件,但我得到:我该如何解决这个问题?我正在制作患者注册表,注册后我想查看文本文件中的所有模型字段。代码有效,我得到一个文本文件,但我看到的不是预期值,而是一个延迟属性。我的错在哪里?

这是我的模型.py

from django.db import models
from django.contrib.auth.models import User
from django.urls import reverse

class Post(models.Model):

soru1 = models.CharField(verbose_name='Ad Soyad',max_length=10000, default="")
soru2 = models.CharField(verbose_name='Tarih', max_length=10000, default="")
soru3 = models.CharField(verbose_name='Doğum Tarihi', max_length=10000, default="")
soru4 = models.CharField(verbose_name='Doğum Yeri', max_length=10000, default="")
soru5 = models.CharField(verbose_name='Medeni Hali', max_length=10000, default="")

这是我的views.py:

from django.shortcuts import render
from django.views.generic import ListView, DetailView, CreateView, UpdateView, DeleteView
from .models import Post
from .forms import PostForm
from django.urls import reverse_lazy
from django.db.models import Q
from django.http import HttpResponse
from django.core.files import File



#Dosya Kaydetme

def writetofile(request):
f = open('/Users/emr/Desktop/ngsaglik/homeo/patient/templates/kayitlar/test.txt', 'w')
textfile = File(f)

kayitlar = Post.objects.all()
lines = []
for kayit in kayitlar:
lines.append(f'{Post.soru1}')

textfile.write(str(lines))
textfile.close
f.close
return HttpResponse()

结果如下:

['<django.db.models.query_utils.DeferredAttribute object at 0x1069ce0d0>', '<django.db.models.query_utils.DeferredAttribute object at 0x1069ce0d0>']

最佳答案

您必须将 Post.soru1 更改为 kayit.soru1。这是因为 Post 是对类的调用,而不是在这种情况下您想要获取的实例,这就是为什么它只显示模型字段而不是实例的值。

kayitlar = Post.objects.all() 在这里,您将 Post 模型的所有现有实例分配给变量 kayitlar。现在您可以忘记 Post 并进一步处理包含所有对象的 kayitlar 变量。

关于django - 获取 <django.db.models.query_utils.DeferredAttribute object at 0x1069ce0d0> 而不是值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71102536/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com