UpdateView с использованием Foreignkey в Django - PullRequest
1 голос
/ 07 апреля 2020

Есть ли способ, которым вместо pk я выберу данные модели по foreign key в UpdateView? Нет сомнений, что он работает с id данных, но что если я выберу объект данных в модели, используя условие foreign key? Как бы я это сделал?

Вот мой класс UpdateView:

class SettingsProfileView(UpdateView):
    model               = UserInfoModel
    template_name       = 'site/views/settingsprofile.html'
    form_class          = UserInfoForm

Я пытаюсь поставить:

def getquery_set(self):
   return self.model.objects.filter(users_id = self.kwargs['pk'])

, но все же его ссылка на получение данных по primary key.

1 Ответ

0 голосов
/ 07 апреля 2020

Метод: .get_queryset(..) [Django -doc] не getquery_set, но, тем не менее, это не будет работать, так как фильтрация выполняется методом .get_object(..) [Django -doc] .

Таким образом, вы можете работать с:

from django.shortcuts import get_object_or_404

class SettingsProfileView(UpdateView):
    model = UserInfoModel
    template_name = 'site/views/settingsprofile.html'
    form_class = UserInfoForm

    def <b>get_object</b>(self, queryset=None):
        if queryset is None:
            queryset = self.get_queryset()
        return <b>get_object_or_404(queryset, user_id=self.kwargs['pk'])</b>
...