Python 如何在一个页面中编辑多个用户信息?

Python 如何在一个页面中编辑多个用户信息?,python,django,templates,view,Python,Django,Templates,View,假设我想在我的网站上创建一个页面,如果工作人员在场或不在场,我希望能够进入数据库 每个工人都有单独的个人资料页 Mymodels.py: class profile(models.Model): ...#other fields username = model.Charfield(max_length=26, blank=false) class attendence(models.Model): user = models.ForeignKey(profile, r

假设我想在我的网站上创建一个页面,如果工作人员在场或不在场,我希望能够进入数据库

每个工人都有单独的个人资料页

My
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)
原型图片:

在原型图片中,如果它是绿色,则在布尔字段中应该为True,表示存在(这是defualt),当我单击它们的名称时,布尔字段将为false,表示不存在,它将为红色

如何才能做到这一点?我需要模板和视图代码。

好的。。 因此,首先创建视图以填充表单

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>
还有一个观点

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;
}
有点代码重复,但很抱歉,我试图向您展示这项技术,然后您再阅读一些,您会进步的;)

扼要重述
当你点击一个用户时,它会改变背景颜色,提交后他们的状态会将信息保存给你的用户

我可以为你写这封信,但问题是你的问题太全局了,先尝试一些东西,然后在stackoverflow read django的docsI中提问。到目前为止,我已经学会了编辑一个用户的数据,我不能为许多用户做同样的事情。给我一些提示。你不需要写全部代码,我已经开始想办法了。到目前为止,在视图中,我有一个表单,其中用户是一个,但字段是多个,这里字段是一个,但用户是多个。希望我的回答能帮助你,如果你需要什么,请发表评论,我会联系你:)不过,我无法创建一个表单,其中用户将是多个,但数据库字段将是一个。我应该在一个页面中创建多个表单吗?你可以参考一些教程或其他内容吗?在你建议上网后,我已经查看了一些教程。尽管如此,还是要感谢uou为撰写anser所付出的努力。我现在有一些bug需要修复。我会尽快尝试你的代码。另一件事,我需要知道,为什么在第一个代码中有两个上下文。只需先创建对象上下文,然后用数据填充它
.user_is_present{
 height:50px;
 width:100px;
}
.present{
 background-color:green;
}
.absent{
 background-color:red;
}