【Python】如何实现植物的科属索引?
如题,本菜鸟要做一个植物志网站,想要实现一个科属索引功能。有模型如下:
python">class Family(models.Model):name = models.CharField(max_length=100, verbose_name="名称")
slug = models.SlugField(max_length=100)
description = models.TextField(verbose_name="描述")
created = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
class Meta:
ordering = ['name']
def __str__(self):
return self.name
class Category(models.Model):
family = models.ForeignKey(Family, related_name='categories', verbose_name="所属科")
name = models.CharField(max_length=100, verbose_name="名称")
slug = models.SlugField(max_length=100)
description = models.TextField(verbose_name="描述")
created = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
class Meta:
ordering = ['name']
def __str__(self):
return self.name
class Plant(models.Model):
category = models.ForeignKey(Category, related_name='plants', verbose_name="所属属")
name = models.CharField(max_length=200, verbose_name="名称")
alias = models.CharField(max_length=200, verbose_name="别名")
latin_name = models.CharField(max_length=200, verbose_name="拉丁名")
body = models.TextField(verbose_name="描述")
slug = models.SlugField(max_length=200)
created = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
updated = models.DateTimeField(auto_now=True, verbose_name="更新时间")
class Meta:
ordering = ['name']
def __str__(self):
return self.name
需求大致描述如下:
- 首先在页面上显示所有的科名
- 点击某个科名时,出现该科名下所有的属名
- 点击某个属名时,出现该属名下所有的植物
类似于这样的页面(截图自山东农业大学校园植物志):
请问该如何定义views 以及 模板?(大致思路?)
若有哪位前辈有良好的建议,不胜感激!
回答
这个简单啊。就一个列表页搞定。详情页就不说了。
@app.route('/')def index():
family = request.args.get('family', 'all')
category = request.args.get('category', 'all')
query = dict()
if family != 'all':
query['family'] = family
if category != 'all':
query['category'] = category
plants = Plant.query.filter_by(**query)
# 分页等其他的支持就不说了。
以上是 【Python】如何实现植物的科属索引? 的全部内容, 来源链接: utcz.com/a/79537.html