Setelah Buat moneylog, saya ingin kembali ke moneybook_detail, jadi saya membuat moneylog/View.py:

class moneylog_create(FormView):

    form_class = forms.CreateMoneylogForm
    template_name = "moneylogs/create.html"

    def form_valid(self, form):
        moneylog = form.save()
        moneybook = moneybook_models.Moneybook.objects.get(
            pk=self.kwargs["pk"])
        form.instance.moneybook = moneybook
        moneylog.save()
        form.save_m2m()
        return redirect(reverse("moneybook:detail", kwargs={'pk': self.kwargs["pk"]}))

Dan ini adalah Moneybook/urls.py

app_name = "moneybooks"

urlpatterns = [
    path("create/", views.moneybook_create.as_view(), name="create"),
    path("update/<int:pk>/",
         views.moneybook_update.as_view(), name="update"),
    path("<int:pk>/", views.moneybook_detail, name="detail")
]

Bagaimana saya bisa kembali ke moneybook_detail setelah membuat moneylog?

0
dhooonk 27 Januari 2020, 06:23

2 jawaban

Jawaban Terbaik
class moneylog_create(FormView):

    form_class = forms.CreateMoneylogForm
    template_name = "moneylogs/create.html"

    def form_valid(self, form):
        moneylog = form.save()
        moneybook = moneybook_models.Moneybook.objects.get(
            pk=self.kwargs["pk"])
        form.instance.moneybook = moneybook
        moneylog.save()
        form.save_m2m()
        return redirect(reverse("moneybooks:detail", kwargs={'pk': self.kwargs["pk"]}))


app_name = "moneybooks"

urlpatterns = [
    path("create/", views.moneybook_create.as_view(), name="create"),
    path("update/<int:pk>/",
         views.moneybook_update.as_view(), name="update"),
    path("detail/<int:pk>/", views.moneybook_detail, name="detail")
]
0
Saisiva A 27 Januari 2020, 04:05

Saat Anda menggunakan formulir model alih-alih FormView, gunakan tampilan Buat dan perbaiki pengembalian Anda seperti yang ditunjukkan

 class moneylog_create(CreateView):
    form_class = forms.CreateMoneylogForm
    template_name = "moneylogs/create.html"

def form_valid(self, form):
    moneylog = form.save()
    moneybook = moneybook_models.Moneybook.objects.get(
        pk=self.kwargs["pk"])
    form.instance.moneybook = moneybook
    moneylog.save()
    form.save_m2m()
    return reverse("moneybooks:detail", kwargs={'pk': self.kwargs["pk"]})

Dan gunakan pola yang tidak tumpang tindih di url

path("moneybook/<int:pk>/", views.moneybook_detail, name="detail")

Dan tampilan buat Anda adalah moneylog_create di mana seperti yang Anda sebutkan di url sebagai moneybook_create

0
bmons 27 Januari 2020, 04:59