Как установить форму как отправленную, находясь внутри цикла формы в проекте Django?
У меня есть модель Log
с формой LogForm
следующим образом:
class Log(models.Model):
submitted = models.BooleanField(default=False)
log_order = models.IntegerField(.......)
log_weight = models.FloatField(........)
log_repetitions = models.IntegerField(.....)
class LogForm(forms.Form):
log_order = forms.IntegerField()
log_weight = forms.IntegerField()
log_repetitions = forms.IntegerField()
У меня есть цикл for в моем шаблоне, который, поскольку у меня есть таблица с различной информацией, у меня есть цикл генерации форм в этом случае для простоты у меня есть 3 формы для вставки различной log
информации это выглядит следующим образом:
{% for e in exercises %}
{% for b in e.breakdowns.all %}
<form
action="{% url 'my_gym:addlog' workout.id %}" method="post">
{% csrf_token %}
<input hidden type="number" name="log_order" value="{{ b.order}}" required id="id_log_order">
<div>
<input type="number" name="log_weight" required id="id_log_weight">
<input type="number" name="log_repetitions" required id="id_log_repetitions">
</div>
<div>
{% if Log.submitted %}
<button>
Already Submitted
</button>
{% else %}
<button type="submit" id="submitlog">
Click to Submit
</button>
{% endif %}
</div>
</form>
{% endfor %}
{% endfor %}
Вот вид:
class workout_details(DetailView):
model = Workout
template_name = 'template.html'
context_object_name = 'workout'
def get_context_data(self, **kwargs):
exercises = Exercise.objects.filter(workout_id=self.object)
p = Log.objects
context = super().get_context_data(**kwargs)
context['exercises'] = exercises
context['form'] = LogForm()
context['p'] = p
return context
def addlog(request, id):
url = request.META.get('HTTP_REFERER')
if request.method == 'POST':
form = LogForm(request.POST)
if form.is_valid():
data = Log()
data.log_order = request.POST.get('log_order')
data.log_repetitions = form.cleaned_data['log_repetitions']
data.log_weight = form.cleaned_data['log_weight']
data.submitted = True
data.save()
return HttpResponseRedirect(url)
return HttpResponseRedirect(url)
Мой вопрос Что я должен сделать, чтобы когда одна из 3 форм отображается в шаблоне, чтобы активный булеан как submitted, чтобы показать как форма уже отправлена, а остальные 2 формы все еще ожидают отправки.
Вот текущая ситуация: 3 формы, данные в которые могут быть добавлены благодаря циклу for. Если 1 из 3
{% if Log.submitted %}
<button>
Already Submitted
</button>
оставшиеся 2 формы:
{% else %}
<button type="submit" id="submitlog">
Click to Submit
</button>
{% endif %}