【发布时间】:2013-12-31 09:23:06
【问题描述】:
我想通过我的 URL 引用某个数据实例。推荐的方法是什么?我应该使用该数据的主键还是不必要地公开数据库信息?即使使用 PK,URL 也不是“干净的”。那你平时是怎么处理的呢?
详情:
我的网站使用 django。我有一个名为“团队”的模型。任何老师都可以在线创建自己的团队,然后将其添加到数据库中。我不要求团队名称是唯一的。一位教师可以有多个团队。
现在,任何“将学生添加到团队”、“将作业分配给团队”的任何操作都需要在 URL 中传递对团队的引用。比如:
{{ SITE_URL }}/add-student/{{ team }}/
由于名称不唯一,我无法使用该名称。
目前,我在创建每个团队时为其分配一个 UUID,并在我的 URL 中使用该 uuid。这行得通,但它会产生丑陋的 URL。
我可以使用团队的主键,它会比 uuid 短,但又不是一个很好的 URL。我还想知道暴露模型数据库条目的主键是否是一个安全问题?不过,我注意到 SO 似乎在其 URL 中使用了主键。
那么这里的最佳做法是什么?
【问题讨论】:
-
我使用
slug字段来提供人类可读(和 SEO)的 URL。 ClassBasedViews 可以使用 slug 来查找对象。
标签: sql django database-design django-models django-database