我有一个包含3个字段的模型(名称,网址,日期)。如何在我的视图中获取url并将其放入方法中?
sites = Site.objects.all().order_by('date')[:3]
我需要从url(http://www.example.com到example.com)获取主机。我有一个班级来完成这项任务:
class SiteThumb():
def get_site_thumb(self, url):
host = urlparse(url).hostname
if host.startswith('www.'):
host = host[4:]
return(host)
我想稍后在我的模板中使用它(类似于{{site.url}}但是使用与特定'site'对象相关的变量'host'。我无法处理它。我可以在另一个视图中只有一个站点:
def site(request, category_slug, subcategory_slug, id):
我可以简单地将id分配给特定对象。在我的基本视图中
def index(request):
我必须加载几个对象。谢谢你的任何线索。
答案 0 :(得分:1)
一种方法是模型方法。
例如。 Site
是一个模型,其中包含上述三个字段的网址,名称和日期。现在,您可以为Site
模型定义模型方法,您可以在模板中访问该方法。它可以这样做。
class Site(models.Model):
url = field
name = field
date = field
def hostname(self):
#It is copy paste of your implementation
host = urlparse(url).hostname
if host.startswith('www.'):
host = host[4:]
return host
在每个Site
实例的模板中,此方法可以{{ site.hostname }}
进行访问。