Форум сайта python.su
0
Каким образом можно сделать так чтобы поле slug заполнялось автоматически и не отображалось при добавлении объекта через админку.
Офлайн
2
Хм.. через prepopulated_fields
Офлайн
0
Вообще никак не реагирует на него. В админке поле slug отображается жирным цветом как обязательное поле.
Офлайн
2
jokurтак для этого надо editable=False ему сделать
В админке поле slug отображается жирным цветом как обязательное поле.
Офлайн
0
Теперь выдает “Key ‘slug’ not found in Form”. Почему?
Офлайн
2
Вообще-то сразу надо сказать, что prepopulated_fields не очень дружит с русскими тайтлами. Но суть не в этом.
Если их использовать, то да, поле на форме быть должно, но надо его пометить как blank=True, тогда оно станет необязательным. Соответственно, при обработке формы в slug попадет профильтрованное значение из поля которое вы задали. editable=True совсем говорит форме не использовать это поле, на что она в последствии ругается, т.к. не может его найти.
Я бы советовал, наверно, вообще отказаться от этой возможно и реализовать руками, используя пакет pytils. Всё локигу можно в методе save модели разместить. Например:
def save(self, *args, **kwargs):
from pytils import slugify
self.slug = slugify(self.title)
super(MyModel, self).save(*args, **kwargs)
Офлайн
0
Хорошо, при editable = True и prepopulated_fields = ‘date’(date = models.DateTimeField(auto_now_add=True)) у меня в админке поле slug сразу автоматически генерируется, но при одинаковый значениях title оно не делается уникальным, а надо! Как мне такое можно реализовать?
У меня прописан метод save в моей модели для генерации уникального slug и даже поле slug имеет параметр unique_for_date='date'. Но все равно всем записям имеющим одинаковый заголовок присваивается не уникальный slug.
P.S. Для генерации slug использую пакет pytils.
Офлайн
2
jokurТак уж вы разберитесь, как вы хотите slug генерировать, от даты или от заголовка. Так в save и пропишите.
у меня в админке поле slug сразу автоматически генерируется, но при одинаковый значениях title оно не делается уникальным, а надо!
Офлайн
0
На сколько я понял метод save вообще для админки не указ. Там вся генерация slug происходит встроенным джаваскриптом. Можно ли как то не прибегая к адаптации этого самого джаваскрипта добиться генерации уникального значения slug через АДМИНКУ?
Офлайн
2
jokurНет.
На сколько я понял метод save вообще для админки не указ.
def save(self, *args, **kwargs):
from pytils import slugify
self.slug = slugify(self.title)
super(MyModel, self).save(*args, **kwargs)
Офлайн