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
视图中使用的代码是否正确,因为它没有提供相关的输出例如,如果数据库中的值为“School”,则表示输出为[<Types: Types object>, <Types: Types object>] [<Types: Types object>, <Types: Types object>]
答案 0 :(得分: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
等父类型。