Model view controller 让模型方法输出单个HTML元素是否违反MVC?

Model view controller 让模型方法输出单个HTML元素是否违反MVC?,model-view-controller,language-agnostic,Model View Controller,Language Agnostic,我有时会添加这样的模型方法: class Company(models.Model): name = CharField(length=64) @classmethod def dropdown(cls, classes="" id_prefix=""): """ Prints out a select box with every company """ if id_prefix: id_

我有时会添加这样的模型方法:

class Company(models.Model):

    name = CharField(length=64)

    @classmethod
    def dropdown(cls, classes="" id_prefix=""):
       """
       Prints out a select box with every company
       """
       if id_prefix:
           id_prefix = id_prefix +  '_'
       t = Template("""
         <select class="{{ classes }}" id="{{ id_prefix }}company_id">
         {% for company in companies %}
         <option value="{{ company.id }}">{{ company.name }}</option>
         {% endfor %}
         </select>
       """)
       companies = cls.objects.all()
       c = {'companies': companies, 'classes': classes, 'id_prefix': id_prefix}
       return t.render(c)
class公司(models.Model):
name=CharField(长度=64)
@类方法
def下拉列表(cls,classes=”“id\u prefix=“”):
"""
打印每个公司的选择框
"""
如果id_前缀:
id_prefix=id_prefix+''
t=模板(“”)
{公司%中的公司为%}
{{company.name}
{%endfor%}
""")
companys=cls.objects.all()
c={'companys':公司,'classes':类,'id\u prefix':id\u prefix}
返回t.render(c)

我的很多同事告诉我这是错误的,因为输出HTML是应该在视图中完成的事情,但我的想法是,因为它只是一个HTML元素,所以没关系。

不管它是不是一个
,一个HTML元素在我看来是显示中性数据的。select元素周围的CSS和HTML处理数据的显示方式(仍然由视图控制)。同样,如果您想在完全非HTML上下文中重用模型,该怎么办?HTML是一种特定的输出格式,这显然是视图的工作。