diff --git a/finances/forms.py b/finances/forms.py
index 309d50d231848d9f9a7a7796670ca0da571c3445..6f39d10e38b42c1f325cb8cf4df30f40d48c8d1d 100644
--- a/finances/forms.py
+++ b/finances/forms.py
@@ -39,7 +39,6 @@ class SubsidyAttachmentForm(forms.ModelForm):
         )
 
 
-
 #############
 # Work logs #
 #############
diff --git a/finances/templates/finances/_subsidy_card.html b/finances/templates/finances/_subsidy_card.html
index 238cf70a462860a5f598fee130ad4b748dcd49a5..f0cad9eebcb94ad458c0bfc2923ea4a3feb12c24 100644
--- a/finances/templates/finances/_subsidy_card.html
+++ b/finances/templates/finances/_subsidy_card.html
@@ -42,6 +42,11 @@
   <div class="row">
     <div class="col-12">
       <h3>Attachments</h3>
+      {% if perms.scipost.can_manage_subsidies %}
+      <ul>
+	<li><a href="{% url 'finances:subsidyattachment_create' subsidy_id=subsidy.id %}">Add a SubsidyAttachment</a> to this Subsidy</li>
+      </ul>
+      {% endif %}
       <table class="table">
 	<tr>
 	  <th>File name</th>
diff --git a/finances/templates/finances/subsidy_list.html b/finances/templates/finances/subsidy_list.html
index 7a167e3d8268da9ea27afacc6814b4f97ba55945..e8a11c93262fd3a946ca40c8c83ce4130167df90 100644
--- a/finances/templates/finances/subsidy_list.html
+++ b/finances/templates/finances/subsidy_list.html
@@ -29,7 +29,6 @@ $(document).ready(function($) {
     {% if perms.scipost.can_manage_subsidies %}
     <ul>
       <li><a href="{% url 'finances:subsidy_create' %}">Add a Subsidy</a></li>
-      <li><a href="{% url 'finances:subsidyattachment_create' %}">Add a SubsidyAttachment</a></li>
     </ul>
     {% endif %}
   </div>
diff --git a/finances/urls.py b/finances/urls.py
index 243d702356ecd0df1730237ab776ddddf9c4de6f..dd19ee96e037d62437157afd3b1331b0b8a06cf5 100644
--- a/finances/urls.py
+++ b/finances/urls.py
@@ -20,7 +20,7 @@ urlpatterns = [
     url(r'^subsidies/(?P<pk>[0-9]+)/$', views.SubsidyDetailView.as_view(), name='subsidy_details'),
     url(r'^subsidies/(?P<subsidy_id>[0-9]+)/attachments/(?P<attachment_id>[0-9]+)$',
         views.subsidy_attachment, name='subsidy_attachment'),
-    url(r'^subsidies/attachments/add/$',
+    url(r'^subsidies/(?P<subsidy_id>[0-9]+)/attachments/add/$',
         views.SubsidyAttachmentCreateView.as_view(),
         name='subsidyattachment_create'),
     url(r'^subsidies/attachments/(?P<pk>[0-9]+)/update/$',
diff --git a/finances/views.py b/finances/views.py
index f8471a9e506870a5799c1c9ae4ccb84fb8f49051..426053bdbf06745a54c92377018b396d2b3e21fd 100644
--- a/finances/views.py
+++ b/finances/views.py
@@ -89,7 +89,13 @@ class SubsidyAttachmentCreateView(PermissionsMixin, CreateView):
     model = SubsidyAttachment
     form_class = SubsidyAttachmentForm
     template_name = 'finances/subsidyattachment_form.html'
-    success_url = reverse_lazy('finances:subsidies')
+
+    def get_success_url(self):
+        return reverse_lazy('finances:subsidy_details', kwargs={'pk': self.object.subsidy.id})
+
+    def get_initial(self):
+        subsidy = get_object_or_404(Subsidy, pk=self.kwargs.get('subsidy_id'))
+        return {'subsidy': subsidy}
 
 
 class SubsidyAttachmentUpdateView(PermissionsMixin, UpdateView):
@@ -102,6 +108,9 @@ class SubsidyAttachmentUpdateView(PermissionsMixin, UpdateView):
     template_name = 'finances/subsidyattachment_form.html'
     success_url = reverse_lazy('finances:subsidies')
 
+    def get_success_url(self):
+        return reverse_lazy('finances:subsidy_details', kwargs={'pk': self.object.subsidy.id})
+
 
 class SubsidyAttachmentDeleteView(PermissionsMixin, DeleteView):
     """
@@ -109,7 +118,9 @@ class SubsidyAttachmentDeleteView(PermissionsMixin, DeleteView):
     """
     permission_required = 'scipost.can_manage_subsidies'
     model = SubsidyAttachment
-    success_url = reverse_lazy('finances:subsidies')
+
+    def get_success_url(self):
+        return reverse_lazy('finances:subsidy_details', kwargs={'pk': self.object.subsidy.id})
 
 
 def subsidy_attachment(request, subsidy_id, attachment_id):