如果使用prepopulated_fields,是否还需要slugify?

时间:2015-12-29 23:27:36

标签: regex django

事实上,使用slug进行了解释。我见过的很多方法都是对我说的。我来自laravel,并没有那么参与。我知道有一种更简单的方法可以带给我以下内容。我看到prepopulated_fields 我已经使用过但我不知道应该如何使用它。在使用prepopulated_fields的示例中,它们看起来很简短,但是我没有足够的解释来理解它。我也看到了不同的方法来编写我刚才通过Django学到的正则表达式。到目前为止,我所知道的关于正则表达式的是胡萝卜和美元符号。我不太清楚它是否知道正确或更有效的写作方式

这就是我见过它的方式

class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title', 'slug')
    search_fields = ('content', )

    prepopulated_fields = {'slug': ('title', )}

但它很简短,并且解释得像我应该知道而不是新手。我使用的是python 3.5和Django 1.9。

这些是我见过的一些正则表达式的例子,我不知道什么是正确的

 (?P<slug>\d+)/$
 (?P<slug>[-\w\d]+)
 (?P<slug>[\w-]+)/

任何可以解释这一点的教程或书籍都将非常感激。

我的目标是拥有一个看起来像这样的网址

stackoverflow.com/1/ask-a-question

1 个答案:

答案 0 :(得分:1)

首先,学习正则表达式的有用链接:

Official docs (python)

Online testing your regex patterns (python)

A first link of regex tutorial googled (regex in general)

其次,从你的正则表达式开始就是#3选项:

(?P<slug>[\w-]+)/

\ w =字母数字唱歌(0 - 9和a-z和A-Z)

- =允许正则表达式中的连字符

+ =一个或多个重复的字符(没有它你将在Django中出现404错误)

第三,你的目标:

# Option n. 1
url(r"^1/ask-a-question", views.your_function, name="your_function",

# OPTION n. 2
url(r"^(?P<slug>[\d]+)/ask-a-question", views.your_function, name="your_function"),

# Option n. 3
url(r"^(?P<slug_1>[\d]+)/(?P<slug_2>[\W-]+)", views.your_function, name="your_function"),

&LT;蛞蝓&GT;是从URL地址中提取的值,[]中的序列是&#34;验证器&#34; (该值例如是字符串而不是整数)。

第四,你是什么意思&#34; slufigy&#34;? (在哪种情况下)。我没有得到它,你能发布一些关于它的代码吗?)