编程语言
首页 > 编程语言> > python-Django查询返回空字符串

python-Django查询返回空字符串

作者:互联网

我的Django应用出现问题,我创建了两个Blog对象,一个在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对象,但它们为空.我的模板仅显示Writer By-发布于两次.

但是我可以登录并打印所有用户信息.

任何想法可能是什么问题,或者我怎么解决?非常感谢 !

编辑:添加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 Model magic需要这些参数.如果您没有在__init __()中做任何事情,则可以将其全部删除.

如果要保留它,请执行以下操作:

def __init__(self, *args, **kwargs):
    super(Blog, self).__init__(*args, **kwargs)

标签:apache,mod-wsgi,python,django,mysql
来源: https://codeday.me/bug/20191118/2031379.html