0 0

关于使用django生成sitemap的问题10

我的django的model使用了虚类生成的方法
class News(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    news_type = models.ForeignKey(ContentType, blank=True, null=True, editable=False)
    pic_recommended = models.BooleanField()
    index_recommended = models.BooleanField()
    privilege = models.IntegerField()
    pub_time = models.DateTimeField()

    def __unicode__(self):
        return u'%s' % (self.title)
    
    def abstract_to_concrete(self):
        concrete = self.news_type.model_class().objects.get(pk=self.id)
        return concrete
    
    class Meta:
        ordering = ['-privilege','-pub_time']

然后由这个模型派生出单个的具体新闻类,如:

class Bulletin(News):
    def save(self, force_insert=False, force_update=False):
        self.news_type = ContentType.objects.get(model='Bulletin')
        super(Bulletin, self).save()

    def get_absolute_url(self):
        return '/bulletin/%s/' % self.id
    
    class Meta:
        verbose_name = u'公告栏'
        verbose_name_plural = u'公告栏'

class Knowledge(News):
    title_pic = models.ImageField(upload_to='knowledge/', null=True, blank=True)
    second_type = models.ForeignKey(SecondType)
    
    def save(self, force_insert=False, force_update=False):
        self.news_type = ContentType.objects.get(model='Knowledge')
        super(Knowledge, self).save()

    def get_absolute_url(self):
        return '/knowledge/%s/' % self.id
    
    class Meta:
        verbose_name = u'综合技术'
        verbose_name_plural = u'综合技术'

等等,为了使用django自带的sitemap生成机制,在url中这样写
from django.contrib.sitemaps import GenericSitemap 
from cmmb.news.models import *

info_dict = {
    'queryset': News.objects.all(),
    'pub_time': 'pub_time',
}

sitemaps = {
    'news': GenericSitemap(info_dict, priority=0.6),
}
urlpatterns=patterns(
    (r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),
)

但是这样就出现了问题,因为News是个公共继承的父类,所以没有get_absolute_url的方法,而其他子类则没有pub_time的字段属性,无法生成sitemap,请问有什么好的解决方法么??
2009年4月03日 14:54

2个答案 按时间排序 按投票排序

0 0

不行的话,用interface

2009年4月17日 14:09
0 0

你应该使用Abstract类的方式来定义基类,而不是多表继承的方式。只有定义了abstract才会生成pub_time的字段属性。

我写了一个sitemap的扩展,可以为分页生成sitemap

2009年4月10日 12:03

相关推荐

    Python库 | django_sitemap_generate-0.0.2-py3-none-any.whl

    总之,`django_sitemap_generate` 是一个实用的Django插件,它让创建和维护Sitemap变得更加轻松,对于任何使用Django开发的网站,都是一个值得考虑的工具。通过熟练掌握并运用这个库,开发者可以提升网站的SEO策略,...

    Python库 | jsl_django_sitemap-1.1.1-py3-none-any.whl

    - **动态生成**:允许在运行时动态生成Sitemap,这样可以处理动态内容,如博客文章、用户生成的内容等。 - **自定义格式**:除了XML格式,还可能支持其他格式,比如JSON,以便适应不同应用场景。 - **高级配置**...

    PyPI 官网下载 | django_sitemap_generate-0.2.1-py3-none-any.whl

    5. **使用方法**:要安装`django_sitemap_generate`,用户可以使用`pip`命令,例如:`pip install django_sitemap_generate-0.2.1-py3-none-any.whl`。然后在Django项目的`settings.py`中配置该库,并按照文档指示...

    自定义Django默认的sitemap站点地图样式

    #### 二、使用Django的sitemap功能 ##### 1. 实现步骤 Django自带的sitemap功能实现主要包括三个步骤: - **定义sitemap类**:在项目中创建一个`sitemaps.py`文件,定义继承自`django.contrib.sitemaps.Sitemap`...

    sitemap文件生成

    - **编程生成**:对于大型或动态网站,可以编写脚本或程序自动抓取页面并生成sitemap,例如,Python的`django-sitemap`库或PHP的`SimpleSitemap`类库。 ### 4. Sitemap.exe 在提供的压缩包中,有一个名为`Sitemap....

    Django Sitemap 站点地图的实现方法

    在Django框架中,Sitemap是用来帮助搜索引擎更好地理解和索引网站内容的重要工具。它是一个XML文件,包含了网站上的各个URL,以及关于这些...同时,利用分页技术,即使大型网站也能有效地生成Sitemap,保持良好的性能。

    在Django中使用Sitemap的方法讲解

    Django提供了一个内置的Sitemap框架,可以让你轻松地使用Python代码自动生成Sitemap文件。要实现这一点,你需要完成以下几个步骤: 1. **编写Sitemap类**:首先,你需要为你的应用编写一个或多个Sitemap类。每个...

    Python库 | django-static-sitemaps-2.0.1.tar.gz

    最后,运行`django-admin.py sitemap`命令生成XML站点地图文件。 总的来说,`django-static-sitemaps`为Django开发者提供了一个便捷的工具,用于生成符合标准的XML站点地图,有助于提升网站在搜索引擎中的可见性。...

    django-static-sitemaps:用于将站点地图生成为静态文件以从Web服务器(而不是Django应用程序)提供服务的工具

    它不是从Django提供sitemap.xml的服务,而是具有管理命令/ celery任务,该任务将sitemap.xml生成到单独的文件。 功能亮点: 新增:与Django 2.0+兼容 新增:兼容Python 3 生成站点地图文件到您的STATIC / MEDIA ...

    django自强学堂word

    5. **管理后台(Admin)**:Django自带一个强大的管理后台,只需简单注册模型,即可自动生成CRUD操作界面,供管理员使用。 6. **表单(Forms)**:Django提供了处理HTML表单的强大工具,可以自定义表单类,方便地...

    Django+Mysql开发个人网站.zip

    对于SEO优化,Django 提供了内置的支持,如自动生成 sitemap.xml 文件。\n\n总之,结合 Django 的强大功能和 MySQL 的稳定性能,你可以构建出一个高效、可扩展的个人网站,无论是展示作品集、写博客,还是提供在线...

    基于django的在线视频网站.zip

    1. **视频上传与存储**:使用Django的FileField或ImageField处理用户上传的视频文件。可能需要集成云存储服务如阿里云OSS或AWS S3来存储大规模的媒体文件。 2. **视频转码**:为了适应不同的网络环境和设备,视频...

    django-classified:Django分类

    简单的Django分类广告应用程序产品特点项目组,类别和区域(例如城市或地点) 图片每个项目上传多张图片生成预览(通过 ) 使用库显示搜索能力SEO优化SEO友好的网址生成META描述和meta关键字sitemap.xml robots.txt ...

    毕业设计:基于 Django 1.10 和 Python 3.5搭建的博客系统.zip

    这个毕业设计项目是利用 Django 1.10 和 Python 3.5 构建的一个博客平台,它展示了如何使用这两项技术来开发功能完善的Web应用。Django 是一个高级的Python Web框架,它鼓励快速开发和简洁实用的设计,而 Python 3.5...

    django-blog-zinnia:简单但功能强大且真正可扩展的应用程序,用于在Django网站中管理博客

    - **SEO友好**:Zinnia提供了优化的SEO设置,包括自定义元标签,友好的URL,以及Sitemap生成。 - **社区活跃**:作为一个开源项目,Zinnia拥有活跃的社区,不断更新和改进,确保其与Django的最新版本兼容。 ### 3. ...

    django-blog:使用Django框架和Python的全功能Web应用程序

    本教程将详细介绍如何使用Django创建一个全功能的博客应用程序。 ### 1. Django框架基础 Django的核心组件包括模型(Model)、视图(View)、模板(Template)和URL(URLconf)。这四个组件构成了MVT设计模式,...

    MyAwesomeCart-E-commerce-website-using-Django-

    【标题】"MyAwesomeCart-电子商务网站使用Django-" 是一个基于Python的Django框架构建的电子商务网站项目。这个项目旨在展示如何利用Django的强大功能来创建一个完整的在线购物平台。 【描述】"MyAwesomeCart-电子...

    大型教育培训门户网站源代码(全站生成静态)

    7. **SEO优化**:考虑到教育培训平台需要吸引流量,源代码应包含搜索引擎优化(SEO)元素,如元标签、友好的URL结构、Sitemap生成、页面速度优化等。 8. **性能优化**:全站静态化有助于提高加载速度,但还需要考虑...

    PyPI 官网下载 | feincms3-0.33.0.tar.gz

    4. **SEO优化**:内置支持元标签、自定义URL和Sitemap生成,有利于搜索引擎优化。 5. **多语言支持**:Feincms3可以轻松处理多语言内容,这对于国际化的网站至关重要。 6. **版本控制**:内容编辑过程中提供版本...

Global site tag (gtag.js) - Google Analytics