我试图从table_id
请求table_base.html
并且没有返回任何内容。
我的table_base.html
<div class="container">
<div class="jumbotron">
<h1> {{ table_name }} List</h1>
{% if list_tables %}
<table class="table table-bordered sortable">
<thead>
<th>Id</th>
<th>Name</a></th>
<th>Date</a></th>
<th>Search Button</th>
</thead>
{% for list in list_tables %}
<tr>
<td><a href="#" >{{ list.id }}</a></td>
<td>
<a href="{% url 'tables:addview' table_id=list.id %}" name="table_name">{{ list.name }}</a>
</td>
<td>{{ list.date }}</td>
<td><a href="#">Search</a></td>
</tr>
{% endfor %}
</table>
{% else %}
<p> No Records Found</p>
{% endif %}
</div>
</div>
这是我的tables/urls.py
urlpatterns = [
url(r'^$', views.table_base, name='tables'),
url(r'^(?P<table_id>\d+)$', views.AboutDetail.as_view(), name='details'),
url(r'^(?P<table_id>\d+)/details$', views.addview, name='addview')
]
这是我的tables/views.py
def table_base(request):
table_name = Crawledtables._meta.db_table
list_tables = Crawledtables.objects.order_by('id')
return render(request, 'tables/table_base.html', {'table_name': table_name,
'list_tables': list_tables})
class AboutDetail(DetailView):
model = Crawledtables
pk_url_kwarg = 'table_id'
template_name = 'tables/table_list.html'
def __init__(self, **kwargs):
super(AboutDetail, self).__init__(**kwargs)
def get_object(self, **kwargs):
if 'table_id' not in self.kwargs:
return Crawledtables.objects.get(id=1)
else:
return Crawledtables.objects.get(id=self.kwargs['table_id'])
def addview(request, table_id):
q = request.GET.get('table_id')
print q
table_name = Crawledtables.objects.get(id=q)
print table_name
AllTables._meta.db_table = table_name.name
tbl_detail = AllTables.objects.order_by('id')
return render(request, 'tables/table_list.html', {'details': tbl_detail})
它有效1次。当我选择第一个表(id为1的表)时,它会给我所有信息。当我尝试选择另一个表时,它会给我这个错误:
InternalError: (1054, u"Unknown column 'table_name.id' in 'field list'")
我用print打印一切。它显示出良好的反应。但最后它只是碰到了我的错误1054.我一次只能看到1个表格的详细信息。如果我想看另一张桌子。我必须重新启动服务器。
答案 0 :(得分:1)
您似乎没有运行此命令
python manage.py makemigrations <app_name>
python manage.py migrate
您的桌子尚未创建