Django创建动态模型

时间:2017-09-12 13:12:10

标签: python mysql django

我正在使用python和Django和mysql构建一个网页,我有5K表,结构相同只是名称不同

示例:

my_table_name_1
my_table_name_2
...
my_table_name_5000

我如何设置模型以使基本模板像“my_table_name_”,当我从控制器调用时,我想传递id并指向右表

仅供参考:我在项目中的应用程序称为“民意调查”

在我的module.py中,我使用了./manage.py inspectdb> models.py。 但每当我在db..i中添加一个新表时会发生什么,每次都必须完成所有这些手册。 这就是为什么我想动态制作它...如果我在数据库中添加一个新表我希望能够在不使用./manage.py inspectdb的情况下访问它。

这是我的民意调查/ views.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只是一个表格,其中包含我在该数据库中抓取的所有表格名称。

轮询/ urls.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'),]

这是我的tables.html的一部分 这就是告诉它获取id号码4或者我选择的任何表格ID 来自CrawledTables

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

所以基本上我得到它显示1个表...现在我试图动态显示所有表。 所以基本上这就是现在发生的事情,如果我选择了我抓取的第18个表,并且我想获得它的详细信息,它仍然会显示Table1的详细信息。因为'类详细信息它是静态的'。 现在我想改为如果我选择Table100我想要Table100的内部细节

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

0 个答案:

没有答案