Django 查询 return 个空字符串
Django queries return empty strings
我的 Django 应用程序有问题,我创建了两个博客对象,一个在 mysql 中,另一个在我的视图中。我在我的数据库中看到了它们,但是当我通过查询获取它们时却看不到它们。
我正在使用 django 1.9、python 2.7、apache 2.2 和 mod_wsgi
这是我的观点和模板。
def list_view(request):
blogs = Blog.objects.filter(published=True)
return render_to_response('blog/list.html',
{
"blogs": blogs,
},
context_instance=RequestContext(request))
{% for blog in blogs %}
<h2>{{blog.title}}</h2>
<p>{{blog.content}}</p>
<span>{% trans 'Writen by' %} : {{blog.writer.last_name}} {{blog.writer.first_name}}</span> - <span>{% trans 'Published on' %} {{blog.date_published}}</span>
{% endfor %}
查询为我提供了一个列表,其中包含 2 个 Blog 对象,但它们是空的。我的模板只显示 Writen By - Published on 两次。
但是我可以登录并打印我所有的用户信息。
知道问题出在哪里或我该如何解决吗?非常感谢!
编辑:添加 models.py
class Blog(models.Model):
title = models.CharField(_("Title"), max_length=255, null=False, blank=False)
content = models.TextField(_("Content"), null=True, blank=True)
writer = models.ForeignKey(User, verbose_name=_('Writer'), blank=False, null=False)
published = models.BooleanField(_("Pusblished"), default=False)
date_published = models.DateTimeField(_("Date published"))
def __str__(self):
return '%s' % (self.title)
def __init__(self, *args, **kwargs):
super(Blog, self).__init__()
当您覆盖 Blog.__init__()
时,您没有将 *args
和 **kwargs
发送给父项。 Django 模型魔术需要这些参数。如果您在 __init__()
中没有做任何事情,您可以将它们一起删除。
如果您想保留它,请执行以下操作:
def __init__(self, *args, **kwargs):
super(Blog, self).__init__(*args, **kwargs)
我的 Django 应用程序有问题,我创建了两个博客对象,一个在 mysql 中,另一个在我的视图中。我在我的数据库中看到了它们,但是当我通过查询获取它们时却看不到它们。
我正在使用 django 1.9、python 2.7、apache 2.2 和 mod_wsgi
这是我的观点和模板。
def list_view(request):
blogs = Blog.objects.filter(published=True)
return render_to_response('blog/list.html',
{
"blogs": blogs,
},
context_instance=RequestContext(request))
{% for blog in blogs %}
<h2>{{blog.title}}</h2>
<p>{{blog.content}}</p>
<span>{% trans 'Writen by' %} : {{blog.writer.last_name}} {{blog.writer.first_name}}</span> - <span>{% trans 'Published on' %} {{blog.date_published}}</span>
{% endfor %}
查询为我提供了一个列表,其中包含 2 个 Blog 对象,但它们是空的。我的模板只显示 Writen By - Published on 两次。
但是我可以登录并打印我所有的用户信息。
知道问题出在哪里或我该如何解决吗?非常感谢!
编辑:添加 models.py
class Blog(models.Model):
title = models.CharField(_("Title"), max_length=255, null=False, blank=False)
content = models.TextField(_("Content"), null=True, blank=True)
writer = models.ForeignKey(User, verbose_name=_('Writer'), blank=False, null=False)
published = models.BooleanField(_("Pusblished"), default=False)
date_published = models.DateTimeField(_("Date published"))
def __str__(self):
return '%s' % (self.title)
def __init__(self, *args, **kwargs):
super(Blog, self).__init__()
当您覆盖 Blog.__init__()
时,您没有将 *args
和 **kwargs
发送给父项。 Django 模型魔术需要这些参数。如果您在 __init__()
中没有做任何事情,您可以将它们一起删除。
如果您想保留它,请执行以下操作:
def __init__(self, *args, **kwargs):
super(Blog, self).__init__(*args, **kwargs)