Django创建动态模型

2024-06-26 17:50:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python、Django和mysql构建一个web页面,我有5K个表,它们的结构相同,只是名称不同

示例:

my_table_name_1
my_table_name_2
...
my_table_name_5000

如何设置模型,使其具有“my\u table\u name”这样的基本模板,以及何时从控制器调用,我希望传递id并指向正确的表

仅供参考:我在项目中的应用程序名为“polls”

在我的模块.py我用过/管理.py检查DB>;型号.py. 但是每当我在数据库中添加一个新表时会发生什么呢..每次我都要做所有的手册。 这就是为什么我想让它动态..如果我在数据库中添加一个新表,我想能够访问它而不使用/管理.py检查数据库。你知道吗

这是我的投票/视图.py你知道吗

 class AboutDetail(DetailView):
    model = Crawledtables
    pk_url_kwarg = 'table_id'
    template_name = 'polls/details.html'

    def get_object(self):
        if 'table_id' not in self.kwargs:
            return Crawledtables.objects.get(id=1)
        else:
            return Crawledtables.objects.get(id=self.kwargs['table_id'])

def home(request):
    return render(request, 'polls/base.html')


def tables(request):
    tables = Crawledtables.objects.order_by('id')
    table_list = {'list_tables': tables}
    return render(request, 'polls/tables.html', context=table_list)


class Details(ListView):
    model = Table1
    template_name = 'polls/details.html'
    context_object_name = 'list'
    paginate_by = 15
    queryset = Table1.objects.all()

CrawledTable只是一个表,其中包含我在数据库中爬网的所有表的名称。你知道吗

民意测验/网址.py你知道吗

    urlpatterns = [
        url(r'^$', views.home, name='home'),
        url(r'^tables/$', views.tables, name='tables'),
        url(r'^(?P<table_id>\d+)/details$', views.AboutDetail.as_view(), name='id_details'),
        url(r'^(?P<table_id>\d+)/details$', views.Details, name='details'),]

这是我生活的一部分表格.html 这就是告诉它获取id号4或者在我选择的任何表id上 从爬网表

<td><pre><a href="{% url 'polls:details' list.id%}">{{ list.name }}</a></pre></td>

所以基本上我让它显示一个表…现在我尝试动态显示所有表。 所以基本上这就是现在发生的事情,如果我选择了我爬网的第18个表,我想得到它的细节,它仍然会显示表1的细节。因为“类详细信息是静态的”。 现在我想换成如果我选择Table100我想要Table100的内部细节

更新时间: 5000张桌子只是一个数字。当我说结构相同时,我的意思是结构相同(相同的列),这些表中的数据完全不同


Tags: namepyid数据库urltablesreturnobjects