views
from django.shortcuts import render
from app01 import models
# Create your views here.
def article(request,*args,**kwargs):
print(kwargs)
condition = {}
for k,v in kwargs.items():
kwargs[k] = int(v)
if v == '0':
pass
else:
condition[k] = v
article_type_list = models.ArticleType.objects.all()
category_list = models.Category.objects.all()
# c = {'article_type_id': '1', 'category_id': '2'}
result = models.Article.objects.filter(**kwargs)
return render(
request,
'article.html',
{
'result':result,
'article_type_list':article_type_list,
'category_list':category_list,
}
)
models
from django.db import models
# Create your models here.
from django.db import models
# Create your models here.
class Category(models.Model):
caption = models.CharField(max_length=16)
class ArticleType(models.Model):
caption = models.CharField(max_length=16)
class Article(models.Model):
title = models.CharField(max_length=32)
content = models.CharField(max_length=255)
category = models.ForeignKey(Category,on_delete=models.CASCADE)
article_type = models.ForeignKey(ArticleType,on_delete=models.CASCADE)
# type_choice = (
# (1,'Python'),
# (2,'OpenStack'),
# (3,'Linux'),
# )
# article_type_id = models.IntegerField(choices=type_choice)
urls
"""s14day25 URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/2.1/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
path('article--/', views.article),
]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.condition a{
display: inline-block;
padding: 3px 5px;
border: 1px solid #dddddd;
margin: 5px;
}
</style>
</head>
<body>
<h1>过滤条件</h1>
<div class="condition">
<div>
<a>全部</a>
{% for row in article_type_list %}
<a>{{ row.caption }}</a>
{% endfor %}
</div>
<div>
<a>全部</a>
{% for row in category_list %}
<a>{{ row.caption }}</a>
{% endfor %}
</div>
</div>
<h1>查询结果</h1>
<ul>
{% for row in result %}
<li>{{ row.id }}-{{ row.title }}</li>
{% endfor %}
</ul>
</body>
</html>