Django - Slugify获取查找

Han*_*pan 3 django django-queryset slug

如果我有一个带有名字的对象Object 1并且我想要get()那个对象,但是我试图用一个诽谤的名字来获取它object-1,有什么办法可以做到这一点吗?就像是:

Model.objects.get(name__slugify = slugifiedname)
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我想避免在模型中添加额外的slug字段.

Bra*_*don 5

您需要对'name'字段的值进行一些限制,只允许[-A-Za-z] +,但您可以这样做:

def my_request(request, name):
    un_slugified_name = name.replace('-', '')
    objects = MyModel.objects.get(name=unslugified_name)
Run Code Online (Sandbox Code Playgroud)

但是,您通过查询字符串传递的名称必须与数据库中的名称完全相同.因人而异.我的建议,使用SlugField :)