Страница списка администратора Django: проблема с кнопками пользовательских действий (url), что не так? - PullRequest
0 голосов
/ 26 сентября 2018

Я следовал этому уроку https://books.agiliq.com/projects/django-admin-cookbook/en/latest/action_buttons.html

Это соответствующая часть моего кода:

@admin.register(Partner)
class PartnerAdmin(admin.ModelAdmin):
    change_list_template = 'change_list.html'
    model = Partner

.,.

def get_urls(self):
    return super().get_urls() + [path('sync/', self.sync_partners, name='partners_sync_partners')]

@staff_member_required
def sync_partners(self, request):
    #TODO: Sync code should go here
    self.message_user(request, "Partners sync complete")
    return HttpResponseRedirect("../")

Ссылка на URL шаблона содержит {% url 'admin:partners_sync_partners' %}, который указывает на / admin / partners / partner / sync / , и я думаю, что это должно быть / admin/ partners / sync /

Когда я нажимаю кнопку, я получаю эту ошибку:

Партнер с идентификатором "sync" не существует.Возможно, он был удален?

Я думаю, проблема связана с созданным URL.Мой код находится внутри моего приложения "partners" в partners / admin.py , а мой шаблон - в partners / templates / change_list.html

PS: я использую Django 2.1.1 иPython 3.6.5

1 Ответ

0 голосов
/ 27 февраля 2019

Вот пример пользовательского пользователя, которого я создал, где мне нужно показать все поля на административном сайте django для пользовательского пользователя.

, чтобы вы могли добавить эту кнопку в список

list_display = ('email', 'phone','account_name','account_number','bank_name','bsb_number','account_summary')

Теперь сделайте эту кнопку методом и укажите URL, куда вы хотите ее визуализировать.

def account_summary(self,obj):
    ow_tags = True
    return format_html(
        '<a class="button" href="{}">Account</a>&nbsp;',reverse('all_accounts_view', args=[obj.pk]))
account_summary.allow_tags = True

Не забудьте добавить из django.urls import reverse

...