I have an extended admin model that creates action buttons. I have created a view to do pretty much the same thing. I have used tables2 and everything is just fine except for the actions column. I cannot find a way to generate the same button in the table. Is there a way to do this at all?
tables.py
from .models import Ticket
import django_tables2 as tables
'''from .admin import river_actions, create_river_button'''
class TicketTable(tables.Table):
    class Meta:
        model=Ticket
        template_name='django_tables2/table.html'
        fields = ('id','subject','request_type','material_type','productline','business','measurement_system',
            'created_at','updated_at','status','river_action','project') # fields to display
        attrs = {'class': 'mytable'}
        '''attrs = {"class": "table-striped table-bordered"}'''
        empty_text = "There are no tickets matching the search criteria..."
admin.py (the part that includes the model etc)
# Define a new User admin to get client info too while defining users
class UserAdmin(BaseUserAdmin):
    inlines = (UserExtendInline, )
def create_river_button(obj,proceeding):
        return '''
            <input
                type="button"
                style=margin:2px;2px;2px;2px;"
                value="%s"
                onclick="location.href=\'%s\'"
                />
        '''%(proceeding.meta.transition,
             reverse('proceed_ticket',kwargs={'ticket_id':obj.pk, 'next_state_id':proceeding.meta.transition.destination_state.pk})
             )
class TicketAdmin(admin.ModelAdmin):
    list_display=('id','client','subject','request_type','material_type','productline','business','measurement_system', \
                  'created_at','updated_at','created_by','status','river_actions')
    #list_display_links=None if has_model_permissions(request.user,Ticket,['view_ticket'],'mmrapp')==True else list_display
    #list_display_links=list_display #use None to remove all links, or use a list to make some fields clickable
    #search_fields = ('subject','material_type')
    list_filter=[item for item in list_display if item!='river_actions'] #exclude river_actions since it is not related to a field and cannot be filtered
    #Using fieldset, we can control which fields should be filled by the user in the ADD method. This way, created_by will be the
    #logged in user and not a drop down choice on the admin site
    fieldsets = [
        (None, { 
            'fields': ('client','subject','description','request_type','material_type', \
                       'productline','business','measurement_system', 'project') 
            } ), #to make some field appear horizontal, put them into a []
    ]
    formfield_overrides = {
        models.CharField: {'widget': TextInput (attrs={'size':'40'})},
        models.TextField: {'widget': Textarea(attrs={'rows':4, 'cols':80})},}
    def get_list_display(self, request):
        self.user=request.user
        return super(TicketAdmin,self).get_list_display(request)
    def river_actions(self,obj):
        content=""
        for proceeding in obj.get_available_proceedings(self.user):
            content+=create_river_button(obj, proceeding)
        return content
    river_actions.allow_tags=True
    #override save_model method to save current user since it is not on the admin page form anymore
    def save_model(self, request, obj, form, change):
        if not change:
            # the object is being created and not changed, so set the user
            obj.created_by = request.user
        obj.save()
views.py
def display_tickets(request):
    table = TicketTable(Ticket.objects.all())
    RequestConfig(request).configure(table)
    '''table = CustomerTable(Customer.objects.filter(self.kwargs['company']).order_by('-pk'))'''
    return render(request,'mmrapp/ticket_display.html',{'table':table})

