В чем разница между кнопкой и HREF? - PullRequest
0 голосов
/ 30 января 2020

когда я использую ниже,

 <button class="px-2 py-1 rounded bg-red-500 text-white">{{cta}}</button>

это работает. но когда я пробую URL-версию, например:

<a href="{% url 'moneylogs:create' pk %} " >
    <div class="px-2 py-1 rounded bg-red-500 text-white">{{cta}}</div>
</a>

произошла ошибка, я предполагаю, что это потому, что pk недействителен.

Обратное для 'create' с аргументами '(' ' ,)' не найдено. Попробован 1 шаблон (ов): ['moneylogs / create / (? P [0-9] +) / $']

Я попытался pk = moneylog.pk, но это также не работает .

мое представление moneylog

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 redirect(reverse("moneybooks:detail", kwargs={'pk': moneybook.pk}))

, а url moneylog выглядит так:

app_name = "moneylogs"

urlpatterns = [
    path("create/<int:pk>/", views.moneylog_create.as_view(), name="create"),
    path("update/<int:pk>/", views.moneylog_update.as_view(), name="update"),
    path("<int:moneybook.pk>/delete/<int:moneylog.pk>",
         views.moneylog_delete, name="delete"),
]

В чем разница между кнопкой и ссылкой? и почему это не работает? Как я могу редактировать в HREF версии?

1 Ответ

1 голос
/ 30 января 2020

Переменная pk, в которой вы анализируете, ничего не возвращает, поэтому

аргументы '(' ',)' не найдены.

вы должны вместо этого try kwargs.pk

Однако, если вы пытаетесь получить доступ к ПК изнутри createView, у вас не будет доступа к ПК, так как объект еще не создан, чтобы иметь ПК. ПК будет доступен только в подробном представлении и аналогичных видах.

Разница между href и button заключается в том, что href используется для ссылок и, как правило, переносит пользователя на другую страницу и может быть стилизован как кнопка, тогда как кнопка обычно используется для активации javascript на странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...