Как я могу редактировать информацию о нескольких пользователях на одной странице? - PullRequest
0 голосов
/ 28 июня 2018

Допустим, я хочу создать страницу на своем веб-сайте, где я хочу иметь возможность войти в БД, если рабочие присутствуют или нет.

Каждый работник имеет отдельную страницу профиля.

Мой models.py:

class profile(models.Model):
    ...#other fields
    username = model.Charfield(max_length=26, blank=false)

class attendence(models.Model):
    user = models.ForeignKey(profile, related_name='attendence')
    28January2018 = models.BooleanField(default=1)

Изображение прототипа: Prototype Picture

На изображении-прототипе, если оно зеленого цвета, оно должно быть True в булевом поле, означает присутствовать (это значение по умолчанию), и когда я щелкну по их имени, логическое поле будет иметь значение false, отсутствующее и будет красным.

Как этого добиться? Мне нужен шаблон и код вида.

1 Ответ

0 голосов
/ 28 июня 2018

ХОРОШО ..

Итак, сначала вы создаете представление для заполнения формы

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 * резюмировать * Когда вы нажимаете на пользователя, он меняет цвет фона, а его статусы после отправки сохраняют информацию для ваших пользователей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...