2015-12-29 2 views
1

Использование пули объясняется по сути. Множество методов, которые я видел, для меня многословны. Я исхожу из ларавелла, и это было не так. Я знаю, что есть более простой способ, который приводит меня к следующему. Я вижу prepopulated_fields , и я использовал его, но я не понимаю, как его использовать. В примерах с использованием prepopulated_fields они кажутся короткими, но они недостаточно объяснены для меня, чтобы понять это. Также я вижу разные способы написания регулярных выражений, о которых я только что узнал через Django. Пока все, что я знаю о регулярном выражении, это знак моркови и доллара. Я не знаю достаточно об этом знать, Что правильно или более эффективный способ, чтобы написать его, если используется preopulated_fields, требуется ли slugify?

Это, как я видел его

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-]+)/ 

любые учебники или книги, которые могли бы объяснить это было бы весьма признателен.

моя цель состоит в том, чтобы иметь URL, который выглядит, как этот

stackoverflow.com/1/ask-a-question 

ответ

1

Во-первых, полезные ссылки для обучения регулярных выражений:

Official docs (python)

Online testing your regex patterns (python)

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

Seco го, от Вашего шаблонов регулярных выражений является правильным вариант # 3:

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

\ ш = буквенно-цифровой поёт (0 - 9 и аз и AZ)

- = позволяя дефис в регулярном выражении

+ = один или более повторений символов (без него вы будете получать сообщение об ошибке 404 в Django)

в-третьих, ваша цель:

# 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"), 

<slug> - это значение, извлеченное из URL-адреса, а последовательности в [] являются «валидаторами» (значение представляет собой, например, строку, а не целое число).

В-четвертых, что вы подразумеваете под «slufigy»? (В этом контексте). Я не понял, не могли бы вы опубликовать некоторые коды?)

+0

Спасибо за ответ. Я не хочу, чтобы числовое значение было жестко запрограммировано «...... com/2/for-example», где «1» - это идентификатор из базы данных. Я предполагаю, что вариант три подойдет моим потребностям в том, что follopwing - это код slugify из django.template.defaultfilters import slugify slugify () – losee

+0

Я до сих пор не использовал код slugify и все же много работаю с пулями (передача значений функции в представлениях). :-) – Yaaaaaaaaaaay

Смежные вопросы