Sitemap和get_absolute_url

时间:2015-11-12 17:48:47

标签: django django-models

我制作了我的站点地图并进行了询问,以便只获取具有有效网址的对象,解释:

例如,我的活动可以有潜水员网址,专用网页,pdf的简单链接,重定向到我网站的其他网页或其他网站,或者根本没有网址。

在我的站点地图中,我这样做只是为了获取具有网址的事件:

def items(self):
    events = Event.objects.all()
    event_array = []
    for event in events:
        if event.get_absolute_url():
            event_array.append(event)

    return event_array

这项工作,但我看过模特经理,我认为它也可以为我做这件事,所以我的问题是:最好有一个模特经理为此或我的方式做到这一点是好?

谢谢:)

1 个答案:

答案 0 :(得分:0)

是的,你的模特经理在这里做这样的工作。创建一个使用网址过滤所有事件的方法 阅读文档的这一部分以获取更多详细信息:Django 1.8 - Model Manager

例如:

from django.db import models

class EventManager(models.Manager):
    def get_queryset(self):
        return super(EventManager, self).get_queryset().all()

    def with_url():
        return self.get_query_set().exclude(url__isnull=True, url__exact='')


class Event(models.Model):
    objects = EventManager()