Я пытаюсь отредактировать некоторые объекты в django, но когда я получаю доступ к представлению для редактирования, он говорит, что обратное не найдено. Я прочитал почти все статьи о noreversematch, но ни один не ответил на мой вопрос. Я новичок в django и, возможно, в этом может быть причина. Может кто-нибудь помочь мне исправить это? Спасибо! Мой код ниже.
Мой взгляд:
@login_required(login_url='/auth/login/')
def editareporumbei(request, pk):
""" Pagina editare informatii porumbel """
global semi_frati
sts = StatusPorumbei.objects.all()
porumbel = get_object_or_404(Porumbei, pk=pk)
if porumbel.crescator != request.user:
raise PermissionDenied()
descendenti = Perechi.objects.filter(Q(mascul=porumbel) | Q(femela=porumbel))
if porumbel.tata and porumbel.mama:
frati = Porumbei.objects.filter(Q(Q(tata=porumbel.tata)) &
Q(Q(mama=porumbel.mama))).exclude(serie_inel=porumbel)
rude_tata = Porumbei.objects.filter(Q(Q(tata=porumbel.tata)) & ~Q(Q(mama=porumbel.mama)))
rude_mama = Porumbei.objects.filter(~Q(Q(tata=porumbel.tata)) & Q(Q(mama=porumbel.mama)))
vitregi = rude_tata | rude_mama
semi_frati = vitregi.distinct()
else:
frati = None
semi_frati = None
try:
rating_porumbel = Rating.objects.get(porumbel=porumbel)
except Rating.DoesNotExist:
rating_porumbel = None
if request.method == "POST":
form = AdaugaPorumbel(request.POST, request.FILES, instance=porumbel)
if form.is_valid():
obj = form.save(commit=False)
obj.crescator = request.user
obj.save()
return redirect('/porumbei/vizualizare')
else:
form = AdaugaPorumbel(instance=porumbel)
context = {
'form': form,
'porumbel': porumbel,
'descendenti': descendenti,
'rating_porumbel': rating_porumbel,
'sts': sts,
'frati': frati,
'semi_frati': semi_frati,
}
template = loader.get_template("editare-porumbei.html")
return HttpResponse(template.render(context, request))
Мои URL:
urlpatterns = [
path('porumbei/vizualizare/', porumbei.views.viewpigeons, name='allpigeons'),
path('porumbei/adaugare/', porumbei.views.porumbelnou, name="porumbelnou"),
path('porumbei/editare/<int:pk>/', porumbei.views.editareporumbei, name='editareporumbei'),
]
Шаблон:
<a href="{% url 'editareporumbei' item.id_porumbel %}" class="btn btn-sm btn-icon btn-secondary"><i class="fa fa-pencil-alt"></i> <span class="sr-only">Editare</span></a>
Идентификатор_порумбеля является основным ключ от стола Порумбей.