【问题标题】:display data from database in django在 django 中显示数据库中的数据
【发布时间】:2013-05-28 06:15:49
【问题描述】:

models.py

class Types(models.Model):
    user = models.ForeignKey(User, null=True)
    title = models.CharField('Incident Type', max_length=200)
    parent_type_id = models.CharField('Parent Type', max_length=100, null=True, blank=True)
    is_active = models.BooleanField('Is Active', default=True)

上面的视图和表单用于将数据添加到数据库并显示在模板中,复选框动态显示。所以现在我想从数据库中获取这些值并将其显示在另一个页面中。为此,我的 views.py 是

def what(request):
    user = request.user
    type = TypeSelectionForm(type_id)
    types = Types.objects.filter(user=user.id, parent_type_id=None).order_by('title')
    typelist = Types.objects.filter(user=user.id,parent_type_id=type_id).order_by('title')
 #   type = Types.objects.filter(parent_type_id=type_id)
    return render(request, 'incident/what.html',
        {
            'newreport_menu': True,
            'types':types,
            'typelist': typelist,
    })

我正在尝试从数据库中过滤数据并通过上述视图将其显示在另一个页面中,但我不确定我在What 视图中使用的代码是否正确,因为它没有给出相关的输出。对于例如,如果数据库中的值为“学校”,则输出显示为[<Types: Types object>, <Types: Types object>] [<Types: Types object>, <Types: Types object>]

【问题讨论】:

    标签: django django-models django-forms django-admin django-views


    【解决方案1】:

    如果您的问题与 <Types: Types object> 部分有关,请将 __unicode__() 方法添加到您的 Types 模型中。

    class Types(models.Model):
        user = models.ForeignKey(User, null=True)
        title = models.CharField('Incident Type', max_length=200)
        parent_type_id = models.CharField('Parent Type', max_length=100, null=True, blank=True)
        is_active = models.BooleanField('Is Active', default=True)
    
        def __unicode__(self):
            return self.title
    
        @property
        def parent_types(self):
            """ For accessing the parent types without introducing relationship """
            return self.objects.filter(pk=self.parent_type_id)
    

    这将在列表中显示对象的title,而不是<Types: Types object>

    更新:我添加了一个属性,这样您就可以在不更改模型的情况下访问 types.parent_types 等父类型。

    【讨论】:

    • 更改此设置后,我的输出看起来像 [, ] [, ]。在 db 中,我正在使用字段 parent_type_id它告诉列表是父元素还是子元素。所以我想在父元素下方显示子元素。我能够显示父元素,但不能显示子元素,需要帮助才能显示子元素
    • 父类型 id 使用 ForeignKey 或 OneToOneField 代替 CharField,具体取决于您的需要。然后您可以直接访问父类型。我认为你应该通过 Django 的关系部分。
    • 但是一个学习者我不能在 db 中进行更改,因为它已经设计好了,从视图代码中是否可以在什么视图中显示子元素。这只是我在尝试我不知道如何实现这一点。请告诉我你的想法
    • 谁能告诉我怎么做,对我有很大的帮助
    • 添加了从对象本身获取父类型的方法。试试看
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 2011-11-09
    • 2016-08-06
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    相关资源
    最近更新 更多