【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

需求大致描述如下:

  1. 首先在页面上显示所有的科名
  2. 点击某个科名时,出现该科名下所有的属名
  3. 点击某个属名时,出现该属名下所有的植物

类似于这样的页面(截图自山东农业大学校园植物志):

【Python】如何实现植物的科属索引?

请问该如何定义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

回到顶部