Size: a a a

Django [ru] #STAY HOME

2021 February 26

JT

James Town in Django [ru] #STAY HOME
Мб в views для редактирования надо что-то добавить..Остальное то подтянулось, даже ckeditor с содержимым.
источник

TC

Tom Cauf in Django [ru] #STAY HOME
В сигнале post_save, когда меняешь значения полей instance, нужно выполнять в конце instance.save()? Не вызовет это бесконечного рекурсивного вызова сигнала? Или оно без save() сохранит?
источник

D

DukeNsk in Django [ru] #STAY HOME
James Town
Мб в views для редактирования надо что-то добавить..Остальное то подтянулось, даже ckeditor с содержимым.
У вас, возможно, проблема с тем, что для русскоязычных тегов некорректно генерируется слаг. Я для своих проектов писал классы, наследующиеся от TaggedItem и Tag генерирующие корректный слаг транслитом.
источник

JT

James Town in Django [ru] #STAY HOME
DukeNsk
У вас, возможно, проблема с тем, что для русскоязычных тегов некорректно генерируется слаг. Я для своих проектов писал классы, наследующиеся от TaggedItem и Tag генерирующие корректный слаг транслитом.
у меня нет ни одного русскоязычного тега
источник

JT

James Town in Django [ru] #STAY HOME
DukeNsk
У вас, возможно, проблема с тем, что для русскоязычных тегов некорректно генерируется слаг. Я для своих проектов писал классы, наследующиеся от TaggedItem и Tag генерирующие корректный слаг транслитом.
Может есть еще какие-то детали? Мб в views для редактирования записи надо что-то добавить?

У меня так выглядит поле ввода: <input type="text" data-role="tagsinput" class="form-control" name="tags" placeholder="Вводите метки через запятую"> для тегов.
источник

D

DukeNsk in Django [ru] #STAY HOME
James Town
у меня нет ни одного русскоязычного тега
Тогда у вас, скорее всего, просто не сохраняются теги для записи.  Их надо в цикле обходить после сохранения записи и добавлять.

Я для этого писал такую функцию:

def model_tags_force_save(model, tags) -> None:
   """Принудительно сохраняет теги модели в тех случаях, когда менеджер taggit этого не делает"""
   for tag in tags:
       model.tags.add(tag)

Здесь model – это модель, возвращаемая после сохранения записи.
А tags – это теги из формы, что-то вроде page_form.cleaned_data['tags']
источник

JT

James Town in Django [ru] #STAY HOME
DukeNsk
Тогда у вас, скорее всего, просто не сохраняются теги для записи.  Их надо в цикле обходить после сохранения записи и добавлять.

Я для этого писал такую функцию:

def model_tags_force_save(model, tags) -> None:
   """Принудительно сохраняет теги модели в тех случаях, когда менеджер taggit этого не делает"""
   for tag in tags:
       model.tags.add(tag)

Здесь model – это модель, возвращаемая после сохранения записи.
А tags – это теги из формы, что-то вроде page_form.cleaned_data['tags']
Может быть мы неправильно друг друга поняли.

При создании записи через форму - все теги сохраняются.
Я сейчас покажу.
источник

JT

James Town in Django [ru] #STAY HOME
DukeNsk
Тогда у вас, скорее всего, просто не сохраняются теги для записи.  Их надо в цикле обходить после сохранения записи и добавлять.

Я для этого писал такую функцию:

def model_tags_force_save(model, tags) -> None:
   """Принудительно сохраняет теги модели в тех случаях, когда менеджер taggit этого не делает"""
   for tag in tags:
       model.tags.add(tag)

Здесь model – это модель, возвращаемая после сохранения записи.
А tags – это теги из формы, что-то вроде page_form.cleaned_data['tags']
источник

JT

James Town in Django [ru] #STAY HOME
James Town
Может быть мы неправильно друг друга поняли.

При создании записи через форму - все теги сохраняются.
Я сейчас покажу.
Но когда я открываю форму именно редактирования записи, то в поле меток - их нет.
источник

D

DukeNsk in Django [ru] #STAY HOME
James Town
Но когда я открываю форму именно редактирования записи, то в поле меток - их нет.
А в отладчике смотрели, подтягиваются ли теги в модель?
источник

JT

James Town in Django [ru] #STAY HOME
DukeNsk
А в отладчике смотрели, подтягиваются ли теги в модель?
так, а как это посмотреть?
Я пробовал просто сохранять, но шла ошибка, что я метки не заполнил (они у меня обязательные, иначе, думаю, при изменении записи и вовсе терялись все метки)
источник

D

DukeNsk in Django [ru] #STAY HOME
James Town
так, а как это посмотреть?
Я пробовал просто сохранять, но шла ошибка, что я метки не заполнил (они у меня обязательные, иначе, думаю, при изменении записи и вовсе терялись все метки)
Для этого в отладчике надо брейкпойнт ставить во view после загрузки модели.

При правильной организации работы с taggit не требуется делать это поле обязательным. Теги сохраняются и не теряются. Скорее всего, у вас проблемы с view.
источник

D

DukeNsk in Django [ru] #STAY HOME
Либо с самой формой. Но тут надо видеть весь код. В любом случае, оно так работать не должно.
источник

JT

James Town in Django [ru] #STAY HOME
DukeNsk
Либо с самой формой. Но тут надо видеть весь код. В любом случае, оно так работать не должно.
Сейчас залью на dpaste
источник

JT

James Town in Django [ru] #STAY HOME
DukeNsk
Либо с самой формой. Но тут надо видеть весь код. В любом случае, оно так работать не должно.
https://dpaste.org/eTbO

html шаблона с формой редактирования поможет ?
источник

D

DukeNsk in Django [ru] #STAY HOME
James Town
https://dpaste.org/eTbO

html шаблона с формой редактирования поможет ?
Преде всего, у вас очень неправильный нейминг классов и функций.

Но шаблон покажите.
источник

JT

James Town in Django [ru] #STAY HOME
DukeNsk
Преде всего, у вас очень неправильный нейминг классов и функций.

Но шаблон покажите.
источник

D

DukeNsk in Django [ru] #STAY HOME
Этот шаблон даже теоретически не должен выводить теги в форме. Там же просто input в который не выводится ничего и закомментированные теги, которые в цикле через запятую выводятся.
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Tom Cauf
В сигнале post_save, когда меняешь значения полей instance, нужно выполнять в конце instance.save()? Не вызовет это бесконечного рекурсивного вызова сигнала? Или оно без save() сохранит?
вызовет, зачем тебе в постсейве что-то в самой модели менять?
источник

JT

James Town in Django [ru] #STAY HOME
DukeNsk
Этот шаблон даже теоретически не должен выводить теги в форме. Там же просто input в который не выводится ничего и закомментированные теги, которые в цикле через запятую выводятся.
Там выводятся все теги, которые есть в проекте, я думал, добавить их в этот самый input как-нибудь, но так и не догнал, как вывести теги, принадлежащие этой записи и как их загнать в инпут.
источник