가장 쉬운 사진과 함께 말했다.Django 관리자의 단추가있는 눈금이 있고 단추에 레코드 ID를 전달하는 방법은 무엇입니까?
나는 버튼과 2 열을 생성하는 방법을 모르겠어요. 그런 다음 id가 특정 레코드에 대한 코드를 실행하도록 추가하는 방법.
가장 쉬운 사진과 함께 말했다.Django 관리자의 단추가있는 눈금이 있고 단추에 레코드 ID를 전달하는 방법은 무엇입니까?
나는 버튼과 2 열을 생성하는 방법을 모르겠어요. 그런 다음 id가 특정 레코드에 대한 코드를 실행하도록 추가하는 방법.
는 여기에 가장 쉬운 방법입니다. 보기가 해당 단추 조치를 처리하는 방법은 귀하의 호출이며 다른보기와 같습니다.
하나의 아이디어,이 <input type="hidden" name="id" value="%(the_id)s" />
# models.py
def restart_button(self):
return '<a href="restart/%s">Restart Me</a>' % (self.id)
restart_button.allow_tags = True
# admin.py
list_display = ('restart_button', ...)
def get_urls(self):
# use get_urls for easy adding of views to the admin
urls = super(MyModelAdmin, self).get_urls()
my_urls = patterns('',
(r'^restart/(?P<id>\d)$', self.restart)
)
return my_urls + urls
def restart(self, request, id):
MyModel.objects.get(id=id).restart()
request.user.message_set.create(message="%s restarted." % id)
return http.HttpResponseRedirect('../')
버튼을 추가하는 것은 이런 종류의 권장 솔루션에 비해 상대적으로 많은 작업량이 될 것입니다 : an admin action을 추가하여 작업하려는 객체를 선택하고 무엇을 선택할지 결정합니다. 액션 : 드롭 다운에서 할 수 있습니다.
이 모델에 HTML 버튼을 반환하는 함수를 정의 : 나는 행동이 더 나은 생각하지만 당신이 정말로 버튼을 필요로하는 경우
감사와 별도의 뷰 POST를이었다 각 버튼에 양식 요소 (이 버튼을 안전한 작업을 수행하는 경우) 또는 넣어 /restart/3/
같은 특정 URL에 연결하는 것입니다 매우 도움이됩니다. 관리자 행동에 대해 자세히 살펴볼 것입니다. –
darren
올바른 생각이지만, 당신의'restart_button' 메쏘드는 태그의 절반만을 돌려줍니다 :''를 닫고, 링크 텍스트를 추가하고, 닫는 ''을 추가해야합니다. –
아하, 고마워! 'href' 주소도 수정되었습니다. –
고마워요. 이거 좋았어요^_ ^ – darren