Python Django通用模板由哪些变量控制?

Python Django通用模板由哪些变量控制?,python,django,django-templates,django-forms,Python,Django,Django Templates,Django Forms,我一直在开发一些Django应用程序,其中有一些针对不同型号的重复代码。我想创建一个通用表模板,并将模型类、模型实例列表和表单类传递给它,以便它能够呈现页面并生成表单来添加/删除元素。然后创建一些通用的添加/删除视图来处理此表单 为每个不同的模型定义模板配置的正确部分是什么?如果我只是创建一些类静态变量和函数,比如: class Test(models.Model): # Model name = models.CharField(max_length=20) descr

我一直在开发一些Django应用程序,其中有一些针对不同型号的重复代码。我想创建一个通用表模板,并将模型类、模型实例列表和表单类传递给它,以便它能够呈现页面并生成表单来添加/删除元素。然后创建一些通用的添加/删除视图来处理此表单

为每个不同的模型定义模板配置的正确部分是什么?如果我只是创建一些类静态变量和函数,比如:

class Test(models.Model):
    # Model
    name = models.CharField(max_length=20)
    description = models.TextField(blank=True)

    # Template configuration 
    title = "Test"
    table_columns = ['name', ] # Columns I want to show in the table

    def get_columns(self):
        return [self.name, ]
或者在Django中有没有更清晰的方法来定义这类事情


编辑:似乎我想用来配置模板的一些信息已经有了一个名称,应该放在模型里面。Meta,比如verbose\u name或verbose\u name\u复数。

我不太确定你的问题和你的代码,但这里有一个关于
\u Meta
的小故事

要访问类的列名,可以检查类的
\u meta
属性

例如。一个示例模型,定义了三个字段和一个helper方法
whats\u inside
,它只需迭代
\u meta.fields
,并打印出类的列名称:

from django.db import models

def whats_inside(cls):
    for item in cls._meta.fields:
        print item.name

class Sample(models.Model):

    name = models.CharField(max_length=80)
    desc = models.CharField(max_length=80)
    date_added = models.DateTimeField(auto_now=True, auto_now_add=True)
当我们启动
/manage shell
时,我们可以调用
what_inside
,并将
Sample
作为参数(注意:
ms
只是模型所在的包在这种情况下,您的将有所不同):


正如MYYN所说,你的问题不是很清楚。但是,我假设您希望执行以下操作:

  • 创建通用模板
  • 根据传递的模型和其他参数动态加载此模板
  • 模板中的表格填充了必要的表格等
  • 为要提交到的表单创建视图
  • 我会使用自定义模板标记,而不是将代码包含在模型中(因为这纯粹是一个表示问题,即您希望模型中的所有字段都可用,但只显示其中的一些字段)。例如,您可以创建一个模板标记,您可以这样调用它:

    {% gen_table somemodel %}
    

    也阅读了这篇关于我的文章和我的一些文章


    我还注意到您似乎在模型类中定义了一个自定义方法,但是我相信这样做的方法是创建一个(read),也可以找到一个有用的示例,谢谢,我不知道_meta,但在这种情况下,我想配置每个模型将显示哪些列,不是所有的,因为在某些情况下,有太多的栏目,或者其中一些内容不是很丰富。我的问题更多的是,对于它包含的任何模型,是否有一个标准位置来放置这种类型的通用模板配置,如果没有标准位置,那么模型定义是否正确。
    {% gen_table somemodel %}