将django url反转为对象,而不是视图。可能的

将django url反转为对象,而不是视图。可能的,django,Django,我有一组url,我想检索与此url相关联的django模型,而不是django视图,django视图是。理想情况下,代码应如下所示: urls_to_lookup = get_urls_to_lookup() models = [] for url in urls_to_lookup: model = retrieve_django_model(url) models.append(model) 由于我想查找的URL具有与之相关联的独特模型(通过),这似乎是可能的,但我的goo

我有一组url,我想检索与此url相关联的django模型,而不是django视图,django视图是。理想情况下,代码应如下所示:

urls_to_lookup = get_urls_to_lookup()
models = []
for url in urls_to_lookup:
    model = retrieve_django_model(url)
    models.append(model)
由于我想查找的URL具有与之相关联的独特模型(通过),这似乎是可能的,但我的google skillz却空手而来。谢谢你的帮助


编辑如果有助于头脑风暴解决方案,我将从Google Analytics中为所有博客文章提取这些URL,并希望动态显示最常浏览的页面。URL本身很有帮助,但我想获取每个博客文章的标题、摘要等,以便显示,这些内容都存储在数据库中。

如果您试图创建网站地图;这是最重要的

如果您试图以一种好的格式打印所有URL,请参阅

我正试着想一个拥有这样一个功能的原因,但我想不通。但是,这应该满足您的要求(未经测试):


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

@permalink
实际上只是
反向的包装。它基本上只是意味着“获取此方法的返回值并将其输入到
reverse
”。它不会创建对象及其URL的某种注册表。是的,但这不是很好[在你像我一样需要它的0.00001%的时候:)]手动创建映射肯定有效。我希望有一个更好的方法直接查询数据库或者其他什么。另外,请注意上面关于这个问题的用法的编辑。我想我应该澄清一下,以防它给你带来一些想法。谢谢你的意见!
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