Я учу Джанго. У меня последняя версия Django и Python 3.7.x.
У меня вопрос по поводу self.pk_url_kwarg
и как он создается и когда. Я видел документ по адресу: https://docs.djangoproject.com/en/2.2/ref/class-based-views/mixins-single-object/, но не нашел ответа, на который надеюсь.
В частности, у меня есть запись в файле url.py
, например:
...
path(
'Student/createFromProfile/<uuid:profile_id>',
student.CreateFromProfile.as_view(),
name="student_create_from_profile"
),
...
У меня есть CBV для этого, который начинается:
@method_decorator(verified_email_required, name='dispatch')
class CreateFromProfile(CreateView):
model = Profile
success_url = '/Members'
def get(self, request, *args, **kwargs):
try:
account_holder = Profile.objects.get(
id=self.kwargs["profile_id"]
)
except ObjectDoesNotExist:
messages.error(
request,
"Unknown Profile ID."
)
return HttpResponseRedirect(self.success_url)
Обратите внимание, что в методе get
указан try
и раздел id=self.kwargs["profile_id"]
. Я пытался использовать id=self.kwargs[self.pk_url_kwarg]
, но я получил страницу отладки django, в которой говорится, что он понятия не имеет, что такое pk_url_kwarg
. Я могу остановиться в отладчике PyCharm и проверить self
, и действительно, в нем нет записи для pk_url_kwarg
. Это очень странно, потому что я использую это в других представлениях.
Чего мне не хватает?