Django - Невозможно найти объект с помощью pk (Соответствующий запрос DoesNotExist)
Когда я пытаюсь создать "Тур" для "Пользователя", я получаю эту ошибку: "DoesNotExist at /add-tour/FAjK5CryF8/ - User matching query does not exist."
Конкретно проблемы возникают из-за этой строки кода:
user = User.objects.get(pk=pk)
models.py
class Tour(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
tour_date = models.DateField(default=date.today)
tour_fans = models.ForeignKey(FanAccount, on_delete=models.PROTECT)
def __str__(self):
return f"{self.user} del {self.tour_date}"
views.py
def tour_new(request, pk):
user = User.objects.get(pk=pk)
if request.method == "POST":
form = TourForm(request.POST)
if form.is_valid():
instance = form.save(commit=False)
instance.tour_fans = request.user
form.instance.user = user
instance.save()
form.save()
return render(request, "tour.html", {"form": TourForm(), "success": True})
else:
form = TourForm()
return render(request, "tour.html", {"form": form})
Для "User" я использую пользовательский первичный ключ (ShortUUID). Я новичок в Python и Django, так что это может быть что-то легко решаемое, но после нескольких часов попыток я, кажется, не могу решить эту проблему.
Вам нужно убедиться, что экземпляр пользователя существует, поэтому вместо user = User.objects.get(pk=pk)
вызова user = get_object_or_404(User, pk=pk), нужно передать user как экземпляр:
if request.method == "POST":
form = TourForm(request.POST, instance=user)