2013-11-19 3 views
1

В настоящее время я разрабатываю веб-приложение django, которое требует пули для более чем одной модели.Отделка модели Django с slug

Поскольку я хотел бы избежать повторения себя, а поле «slug» - очень распространенный шаблон, я подумал, что могу просто создать декоратор, который добавит слизню в существующее поле.

I.E.

@hasSlug("title") 
class myModel(models.Model) 
    title = models.CharField(max_length=30) 

Это позволило бы создать поле «title_slug» и сохранить использовать «slugify» для создания слизняка из названия.

Проблема в том, что я еще не продвинулся в python, и мои знания о Django не так уж хороши. Я даже не знаю, можно ли это сделать или нет.

Кроме того, независимо от существующих решений, о которых я могу не знать (какой-то встроенный декоратор «slugify»), я хотел бы знать, как это сделать, если это возможно, потому что я ничего не мог найти об этом в Интернете, и я уверен, что кто-то еще может использовать это для той или иной ситуации.

ответ

1

Вы могли бы искать SlugField
Вы сможете предварительно заполнить это поле, по крайней мере, в админ наверняка:

#docs 
It is often useful to automatically prepopulate a SlugField based on the value 
of some other value. You can do this automatically in the admin 
using prepopulated_fields. 
+0

Спасибо, что решает эту конкретную проблему. Тем не менее, я хотел бы знать, можно ли использовать декоратор для динамического добавления поля в модель и как это сделать. – XelharK

+1

@XelharK Вы должны наследовать от абстрактной модели с slugfield. – iMom0

+0

Так что декоратор - это не очень хорошая идея? Есть ли для этого конкретная причина? Может быть, так или иначе? – XelharK