Програмно създаване на пренасочвания в Wagtail

Има ли начин за програмно създаване на функциониращи Redirect обекти в Wagtail?

Опитвам очевидното (наивно създаване на обекта):

Redirect.objects.create(old_path='/test', redirect_link='https://stackoverflow.com')

Това създава Redirect, което се вижда в административния панел на Wagtail, но навигирането до /test просто 404s без пренасочване.

Ако след това обаче запазя Redirect от административния панел, той изведнъж работи.

Има ли някаква специална логика след запазване, която трябва да изпълня, за да активирам пренасочването? Прегледах източника и не можах да намеря нищо.


person Josh    schedule 04.12.2019    source източник
comment
Вашият примерен код работи добре, когато го пробвам. Има някакъв код за почистване главно за справяне с липсващи/допълнителни наклонени черти (normalise_path, github.com/wagtail/wagtail/blob/master/wagtail/contrib/), който няма да бъде извикан автоматично, когато го създадете чрез Redirects.object.create - може би когато пробвахте, използвахте стойност за old_path, която не беше валидна, докато не се приложи това почистване?   -  person gasman    schedule 05.12.2019
comment
Благодаря. Опитах кода си отново и странно, той работи. Мисля, че може да съм се сблъсквал с проблеми с кеширането на DNS, когато първоначално тествах.   -  person Josh    schedule 05.12.2019


Отговори (1)


Потребителска грешка - смятам, че имах проблеми с кеширането на DNS, които попречиха на пренасочването да работи. Оригиналният ми код сега изглежда работи добре.

person Josh    schedule 05.12.2019
comment
За съжаление, използването на абсолютно същия код като част от тестването на django не работи, получавате тази грешка 404 на django resolver, така че просто грешката на потребителя не изглежда като че ли я покрива - person Mike 'Pomax' Kamermans; 30.11.2020