У меня есть представление (CreateWorkRelationView), которое использует CreateView CBV. В URL-адресе передается параметр (пользователь), который мне нужно сослаться на много. Можно ли задать объекту user за пределами функций в моем классе? Так вы можете получить доступ к kwargs вне функции?Использовать параметр url в представлении на основе классов Django
Так что я в основном просто хочу, чтобы добавить следующую строку в мой класс
user = get_object_or_404(Contact.pk=kwargs['user'])
В настоящее время, однако, что возвращает
NameError: name 'kwargs' is not defined
Это мой класс
class CreateWorkRelationView(LoginRequiredMixin, SuccessMessageMixin, CreateView):
template_name = 'groups/group_form.html'
form_class = WorkRelationForm
model = WorkRelation
title = "Add a work relation"
success_message = "Workrelation was successfully created."
def form_valid(self, form):
user = get_object_or_404(Contact, pk=self.kwargs['user'])
form.instance.contact = user
return super(CreateWorkRelationView, self).form_valid(form)
def get_success_url(self):
return reverse_lazy('contacts:contact_detail', self.kwargs['user'])
причина, почему я хотел бы это сделать, это:
- Я хочу использовать этот объект в своей строке заголовка.
- Я собираюсь добавить еще несколько функций, и все они нуждаются в этом объекте.
Если вы ищете зарегистрированного пользователя, вы можете использовать self.request.user, но мне может быть что-то не хватает – Arnaud