django - 获取 <django.db.models.query_utils.DeferredAttribute object at 0x1069ce0d0> 而不是值

标签 django

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

这是我的模型.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/

相关文章:

python - 如何避免保存重复数据? [ Django ]

django - 这是多么不安全?

Django rest框架自定义返回响应

python - 在 Django 中将 easy-thumbnails(或其他第 3 方库)与 jinja2 一起使用

django - 在不重新指定选项的情况下覆盖 Django ModelForm 中的 ChoiceField 小部件

python - Django - 管理站点 - 如何保护它?

python - Django prefetch_related 优化查询但仍然很慢

Django 异步请求

django - FileField 无法与 Django 中的 ArrayField 一起使用

python - Django : get_or_create Raises duplicate entry with together_unique