ХОРОШО ..
Итак, сначала вы создаете представление для заполнения формы
def populate_my_form(request):
context = {}
context['users'] = Users.objects.all()
return render(request, 'myapp/my_template.html', context)
в вашем шаблоне у вас должно быть что-то вроде
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<form action="{{ url 'post_my_edits' }}" method="get" id="employees">
{% for user in users%}
#store the data in hidden inputs will be easier for you to understand id
<input id="input_for_user_{{user.id}}" name="{{user.id}}" value="{{user.is_present}}" style="display:none" type="text" disabled>
<div id="{{user.id}}" class="user_is_present {{user.is_present}}">{{user.first_name}}</div>
{% endfor %}
</form>
<button type="submit" form="employees" value="Submit">Submit</button>
<script>
$('.user_is_present').click(function(){
my_input = $("#input_for_user_"+$(this).attr('id'))
if( my_input.val() === 'present'){
$(this).removeClass( "present" )
$(this).addClass("absent")
my_input.val("absent")
}
if( my_input.val() === 'absent'){
$(this).removeClass( "absent" )
$(this).addClass("present")
my_input.val("present")
}
})
</script>
в JS Go
при условии, что в ваших URL есть URL
path('update_users/', views.update_users, name='update_users')
и вид
def update_users(request):
for user in Users.objects.all():
user.is_present = request.POST[str(user.id)]
user.save()
context = {}
context['users'] = Users.objects.all()
return render(request, 'myapp/my_template.html', context)
в тебе css
.user_is_present{
height:50px;
width:100px;
}
.present{
background-color:green;
}
.absent{
background-color:red;
}
Литт-код повторяется, но извините, я пытаюсь показать вам технику, затем вы прочитаете еще немного, и вы будете импровизировать;)
1022 * резюмировать *
Когда вы нажимаете на пользователя, он меняет цвет фона, а его статусы после отправки сохраняют информацию для ваших пользователей