在模型get_absolute_url命名空间视图的Django的网址反向

问题描述 投票:0回答:1

我不太明白,我怎么能sensically在模型的reverse使用命名空间get_absolute_url查找。说我有app_name=MYAPPin URL配置,那么我需要把reverse('MYAPP:blah-detail ...get_absolute_url。在我看来,如果我介绍另一个URL配置具有不同app_name,模型的get_absolute_url仍然会得到我MYAPP的URL。该app_name不能导入,因为周期性的依赖,这将创造model.py无论是。

有没有一个规范的解决方案呢?

django
1个回答
0
投票

我不得不读你的问题了几次,我不知道你问真。

该absolute_url的目的仅仅是在数据库对象的绝对路径。这就是为什么它通常写为模型类的方法。

如果您创建一个应用,你会用一个完全不同的命名空间,这意味着不同的路径不同的对象。

如果我错过了你明白请让我知道这样我就可以回答正确。

根据您的评论试试这个。

from .urls import app_name

def get_absolute_url(self):
    return reverse(f'{app_name}:detail', args=[self.slug])

# or
from .apps import <AppName>Config

def get_absolute_url(self):
    return reverse(f'{<AppName>Config.name}:detail', args=[self.slug])

我更新了答案,这两个解决方案,我们在评论中讨论。

© www.soinside.com 2019 - 2024. All rights reserved.