我正在使用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张桌子只是一个数字。当我说结构相同时,我的意思是结构是相同的(同一列)这些表中的数据是完全不同的