С учетом следующих настроек администратора:
class BrokerLocationSetForm(forms.ModelForm):
class Meta:
model = BrokerLocationSet
fields = ('broker', 'program', 'label', 'locations')
widgets = {
'locations': autocomplete.ModelSelect2Multiple(url='admin-autocomplete-location', forward=('broker','program')),
}
class BrokerLocationSetAdmin(admin.ModelAdmin):
model = BrokerLocationSet
form = BrokerLocationSetForm
list_display=['broker', 'program', 'label']
admin.site.register(BrokerLocationSet, BrokerLocationSetAdmin)
Когда я пытаюсь перейти, чтобы добавить представление в admin для BrokerLocationSetForm, возникает следующая ошибка:
raise NoReverseMatch(msg) NoReverseMatch: Reverse for 'program_program_change' with arguments '(u'__fk__',)' not found. 1 pattern(s) tried: [u'admin/program/program/(?P<program_pk>\\d+)/change/$']
Когда я отлаживаю в оболочке:
reverse('admin:broker_broker_change', 'myapp.urls', args=(u'__fk__',))
выводит:
и '/ администратор / брокер / брокер / Ф.К. / изменение /'
но для:
reverse('admin:program_program_change', 'myapp.urls', args=(u'__fk__',))
Я получаю ту же ошибку, что и выше. После некоторой отладки я почувствовал, что каким-то образом администратор передает строку вместо int в функцию reverse, в то время как он ожидает целое число, как показано ниже:
reverse('admin:program_program_change', 'myapp.urls', args=(u'1',))
и '/ администратор / программы / программы / 1 / изменение /'
Так как администратор django делает это волшебство обращения URL Я не уверен, где мне следует настроить это, чтобы исправить ошибку. Я получил эту кодовую базу довольно новой и, чтобы получить смысл полностью.
Как я могу исправить вышеуказанную ошибку, настроив модель или форму администратора. Я не хочу обновлять 'admin: program_program_change', но, вероятно, предоставлю альтернативный маршрут к тому же представлению! , Является ли это возможным ? пожалуйста посоветуйте!