django - 将 django url 反转为对象,而不是 View 。可能的?

标签 django

我有一组 URL,我想检索与该 URL 关联的 django 模型,而不是 reverse URL Dispatcher does 的 django View 。 。理想情况下,代码应如下所示:

urls_to_lookup = get_urls_to_lookup()
models = []
for url in urls_to_lookup:
    model = retrieve_django_model(url)
    models.append(model)

由于我想查找的网址具有与其关联的独特模型(通过 @permalink decorator ),这似乎是可能的,但我的谷歌技能却空手而归。感谢您的帮助!

编辑如果它有助于集思广益解决方案,我将从 Google Analytics 中提取所有博客文章的这些 URL,并且我希望动态显示最常查看的页面。 URL 本身很有帮助,但我想获取每篇博客文章的标题、预告片等以供显示,这些都存储在数据库中。

最佳答案

如果您正在尝试创建站点地图;有sitemaps contrib app .

如果您尝试以良好的格式打印出所有 URL,请参阅 this answer .

我试图想出拥有这样一个功能的原因,但我却想不起来。但是,这应该可以满足您的要求(未经测试):

from django.db import models

def retrieve_django_model(url):
    m_instances = [m for m in models.get_models() \
                     if m.objects.all().count()]
    for m in m_instances:
        if m.objects.all().order_by('?')[0].get_absolute_url() == url:
            return m
        else:
            return None

由于我们只能从实例而不是模型中获取绝对 URL,因此初始列表理解会过滤掉那些没有实例的模型,因此我们无法获取绝对 URL。

关于django - 将 django url 反转为对象,而不是 View 。可能的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9789355/

相关文章:

Django 重写保存方法 : to return super(). save() 还是不返回?

python - 如何保证两个相关模型得到保存?

python - Django 多个用户配置文件 - 在管理中内联显示用户字段

django - 如何使用 Tivix django-cron 应用程序

mysql - 是否可以创建 2 个可能不具有相同值的字段?

python - 如何使用 Django choicefield 动态设置选项?

Django 标签错误。无效的 block 标签 : 'endfor'

django - django教程中的通用 View UpdateView不保存文件或图像

python - “WSGIRequest”对象不可订阅

Django 脆皮形式动态 label_class 和 field_class