Djangoの管理者には、テンプレートに情報を送信するための印刷ボタンがあります。 Action
ドロップダウンリンクを追加します。ここでは、チェックボックスを使用して希望するエントリを選択し、Action
ドロップダウンリストで Print
を選択します。 しかし、私がAсtion
ドロップダウンへのリンクを追加したとき、私は第3引数を得ることについてエラーになります。私はこれが第三の議論であるとは理解できません。Django Adminのアクションへのリンクを追加
admin.py
@admin.register(Salary)
class SalaryAdmin (admin.ModelAdmin):
list_display = ('worker', 'salary_uah', 'dates', 'button')
search_fields = ('worker', 'salary_uah', 'dates')
list_filter = ('worker', 'date')
actions = ['button']
def button(self, obj):
return '<a class="button" href="{}">Print</a>'.format(reverse('act', args=[obj.pk]))
button.short_description = 'Actions'
button.allow_tags = True
urls.py
urlpatterns = [
url(r'^$',home, name='home'),
url(r'^add/$',add_worker, name='add'),
url(r'^act/(?P<obj>[\w-]+)$',acts, name='act')
]
models.py
class Salary (models.Model):
worker = models.ForeignKey(Worker)
salary_uah = models.IntegerField ('Salary')
date = models.DateTimeField('Date', default=datetime.datetime.utcnow())
views.py
def acts (request, obj):
if not request.user.is_authenticated():
return redirect('admin:login')
salary = Salary.objects.get(id=obj)
workers = Worker.objects.filter(id=salary.worker.pk).values()
salary = Salary.objects.filter(id=obj).values()
return render(request, 'zpapp/act.html', {'workers':workers, 'salary':salary })
エラーメッセージ:
TypeError at /admin/zpapp/salary/
button() takes 2 positional arguments but 3 were given
あなたは私がアクションにリンクを追加する助けてもらえますか?