Django: Как передать идентификатор объекта в представление на основе классов из моего шаблона? - PullRequest
0 голосов
/ 29 марта 2020

Итак, я начал изучать Django и HTML несколько дней go, и я застрял.

В моем шаблоне я распечатываю несколько рецензий для профессора, и я sh добавляю функцию редактирования рецензий. У меня вопрос: как передать pk рецензии в ReviewUpdateView, чтобы я мог редактировать рецензию? Прямо сейчас это выглядит так и, вероятно, неверно.

<p>{{ review.body }}</p>
  {% if review.author == user %}
    <div>
      <a href="{% url 'update-review' pk2=review.pk %}" class="btn btn-secondary btn-sm">Edit</a>
      <a href="#" class="btn btn-danger btn-sm">Delete</a>
    </div>
  {% endif %}

А вот так выглядит urls.py

path('profs/<int:pk>/update/<int:pk2>/', ReviewUpdateForm.as_view(), name='update-review'),

views.py: -

class ReviewUpdateForm(UpdateView):
form_class = ReviewForm

def get_object(self):
    return Prof_review.objects.filter(pk=self.kwargs['pk2']).first()

def form_valid(self, form):
    form.instance.author = self.request.user
    form.instance.professor = Professor.objects.filter(pk=self.kwargs['pk']).first()
    return super().form_valid(form)

form.instance.professor = Professor.objects.filter(pk=self.kwargs['pk']).first() это просто назначить профессора для этого обзора.

...