Django: В чем разница между запросом и собой? - PullRequest
0 голосов
/ 31 января 2020

То же, что и заголовок. В чем разница между запросом и self в Django?

Я бы попробовал представление на основе классов и представление функций. и скопируйте хорошо сделанный код. но я не знаю, в чем разница между self в fomr_valid и запросом в определении moneylog_delete.

class moneylog_update(UpdateView):
    model = moneylog_models.Moneylog
    form_class = forms.UpdateMoneylogForm
    template_name = "moneylogs/update.html"

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


def moneylog_delete(request, moneybook_pk, moneylog_pk):
    user = request.user
    try:
        moneybook = moneybook_models.Moneybook.objects.get(pk=moneybook_pk)
        models.Moneylog.objects.filter(pk=moneylog_pk).delete()
        return redirect(reverse("moneybook:detail", kwargs={"pk": moneybook.pk}))
    except models.Moneylog.DoesNotExist:
        return redirect(reverse("cores:home"))

1 Ответ

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

запрос - это объект, который Django создает каждый раз, когда реальный запрос был сделан к представлению. Он содержит метаданные о реальном запросе и некоторые атрибуты, установленные промежуточным программным обеспечением (чаще всего используется пользовательский экземпляр). self это Python способ присвоения ссылки экземпляру в текущей области видимости. Из do c s:

Часто первый аргумент метода называется self. Это не что иное, как соглашение: само имя не имеет абсолютно никакого особого значения для Python. Тем не менее, обратите внимание, что при несоблюдении соглашения ваш код может быть менее читаемым для других Python программистов, и также возможно, что может быть написана программа браузера классов, основанная на таком соглашении.

В основном это две разные вещи.

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