2011-01-19 3 views

답변

2

는 여기에 가장 쉬운 방법입니다. 보기가 해당 단추 조치를 처리하는 방법은 귀하의 호출이며 다른보기와 같습니다.

하나의 아이디어,이 <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('../') 
+1

올바른 생각이지만, 당신의'restart_button' 메쏘드는 태그의 절반만을 돌려줍니다 :''를 닫고, 링크 텍스트를 추가하고, 닫는 ''을 추가해야합니다. –

+0

아하, 고마워! 'href' 주소도 수정되었습니다. –

+0

고마워요. 이거 좋았어요^_ ^ – darren

1

버튼을 추가하는 것은 이런 종류의 권장 솔루션에 비해 상대적으로 많은 작업량이 될 것입니다 : an admin action을 추가하여 작업하려는 객체를 선택하고 무엇을 선택할지 결정합니다. 액션 : 드롭 다운에서 할 수 있습니다.

이 모델에 HTML 버튼을 반환하는 함수를 정의 : 나는 행동이 더 나은 생각하지만 당신이 정말로 버튼을 필요로하는 경우

+0

감사와 별도의 뷰 POST를이었다 각 버튼에 양식 ​​요소 (이 버튼을 안전한 작업을 수행하는 경우) 또는 넣어 /restart/3/ 같은 특정 URL에 연결하는 것입니다 매우 도움이됩니다. 관리자 행동에 대해 자세히 살펴볼 것입니다. – darren

관련 문제