如果我有一个名为Object 1的对象,并且我想对该对象执行get()操作,但我试图使用一个带参数的名称object-1来获取它,那么有什么方法可以做到这一点吗?类似于:
Model.objects.get(name__slugify = slugifiedname)如果可能的话,我想避免在我的模型中添加额外的slug字段。
发布于 2011-04-19 23:59:23
您需要对'name‘字段的值进行一些限制,只允许-A-Za-z+,但您可以这样做:
def my_request(request, name):
un_slugified_name = name.replace('-', '')
objects = MyModel.objects.get(name=unslugified_name)但是,您通过查询字符串传递的名称必须与数据库中的名称完全相同。YMMV.我的建议是,使用SlugField :)
发布于 2011-04-19 21:50:53
Slugify是一个Python函数。为了实现您的目标,Django必须获取完整的数据库(至少包含pk和name字段),计算每行的slug,并将其与给定的参数进行比较。这将是非常糟糕的,所以:
TLDR:否
https://stackoverflow.com/questions/5717316
复制相似问题