如何调用模板中的模型方法

beg*_*ers 3 django django-templates django-models

我想在模板中的标签中调用模型方法 get_url()

模型.py

class Department(Base):

  department_name = models.CharField(max_length=128)
  description = models.TextField(null=True, blank=True)

  def get_url(self):
      ct = ContentType.objects.get(model='department')
      url_name = ' %s:%s ' % (ct.app_label, ct.model)
      return reverse(url_name, args=(self.object_id))
Run Code Online (Sandbox Code Playgroud)

模板.html

    <a href="{% ? ... how to call the model method here.... ? %}"></a>
Run Code Online (Sandbox Code Playgroud)

小智 6

通过上下文将模型实例传递给模板

def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    context['instance'] = Department.objects.get(id=1)
    return context

<a href="{{ instance.get_url }}"></a>
Run Code Online (Sandbox Code Playgroud)