Django - Как передать model_id цикла в качестве параметра в url формы? Форма обрабатывается в отдельном представлении
В моем проекте django есть forloop
, который проходит через ModelA
.
Во время этого цикла у меня есть форма.
Эта форма обрабатывается в отдельном представлении и требует ModelA_id
в качестве параметра.
По какой-то причине ModelA_id
, который прекрасно работает в цикле, не передается в представление формы, а ModelA_id, используемый формой, выбирается первым.
Я использовал эту логику несколько раз и не вижу, что я делаю по-другому.
вопрос: как передать model_id из цикла в качестве параметра в url формы?
модели
class ModelA(models.Model):
ModelA_field = models.ForeignKey(FK, null = True, blank=True, on_delete=models.CASCADE, related_name="relatednames")
def __str__(self):
return str(self.title) + ' - ' + str(self.venue) + ' - ' +str(self.points)
просмотров
def template_function(request, venue_id):
i = ModelA.objects.filter(
venue=venue_id).order_by('points')
return render(request, 'main/template_function.html', {'i': i})
def form_function(request, venue_id, modela_id):
print(f' modela_id: {modela_id}') # prints the first modela_id, but not the one it relates to in the template loop.
return redirect(url, {})
url
path('form_function/<venue_id>/<modela_id>',
views.form_function, name="form-function"),
шаблон
{% for modela in i %}
<div class="row">
<div class="col">
<p class="small-text">{{ modela.id }}</p> #id is correct
</div>
</div>
<div class="row">
<div class="col">
<a class="" onclick="openForm()">
id:{{modela.id}} #id is correct
</a>
</div>
</div>
<!-- Pop up starts -->
<div class="form-popup">
<form action="{% url 'form-function' venue.id modela.id %}" method="post"> #this is where the modela_id is not correct anymore
{% csrf_token %}
<h5>{{modela.id}}</h5> #id is not correct.
<button type="submit" class="btn">Claim</button>
<button type="button" class="btn cancel" onclick="closeForm()">Close</button>
</form>
</div>
<!-- Pop up ends-->
{% endfor %}