首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django - DetailView和模板

Django - DetailView和模板
EN

Stack Overflow用户
提问于 2015-06-23 04:30:43
回答 1查看 2.7K关注 0票数 2

因此,我的问题是,我有一个详细的视图,它从我的数据库中显示一个特定的帖子。然后,我使用get_context_data从不同的模型获取db值;但是,它在我的模板中输出了一些奇怪的东西。

我可以在模板中更改什么,以便它列出其他模型中的每个正确的db值?

models.py

代码语言:javascript
复制
class Projects(models.Model):
    user = models.ForeignKey(User)
    slug = models.SlugField()
    project_title = models.CharField(max_length=30)
    project_shortdesc = models.CharField(max_length=248)
    project_desc = models.TextField()

    def save(self):
        super(Projects, self).save()
        date = datetime.date.today()
        self.slug = '%i%i%i%s' % (
                date.year, date.month, date.day, slugify(self.project_title)
            )
        super(Projects, self).save()


class ProjectsToDo(models.Model):
    project_tododate = models.DateField()
    project_tododesc = models.TextField(max_length = 500)
    project_id = models.ManyToManyField(Projects)

views.py

代码语言:javascript
复制
class ProjectDetail(generic.DetailView):
    model = Projects
    context_object_name = 'indprojects'
    template_name = 'projectpage.html'

    def get_context_data(self, *args, **kwargs):
        context = super(ProjectDetail, self).get_context_data(*args, **kwargs)
        context['todolist'] = ProjectsToDo.objects.order_by('project_tododate')
        context['todoform'] = ProjectToDoForm()
        context['form'] = ProjectForm(instance=Projects.objects.get(slug=self.kwargs['slug']))
        return context

    def get_queryset(self):
        return Projects.objects.filter(user=self.request.user)

    @method_decorator(login_required)
    def dispatch(self, request, *args, **kwargs):
        return super(ProjectDetail, self).dispatch(request, *args, **kwargs)

模板

代码语言:javascript
复制
 {{todolist}}

这是来自模板的输出:[<ProjectsToDo: ProjectsToDo object>, <ProjectsToDo: ProjectsToDo object>] --我尝试过{{todolist.project_tododesc}},两者都没有输出任何数据。我不太清楚该如何解决这个问题,任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-23 04:43:03

我认为问题在于,如果在类__str__()中使用Python3(或者Python2.x中的__unicode__() ),则没有定义ProjectsToDo方法。

当您试图打印一个模型实例时,所发生的是Django将查看__str__()来决定显示什么。

__str__()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30993905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档