I use a ModelMultipleChoiceField form in my website, because it helps me check the presence of users (employees) at work or not.
But I don't understand how can I recover the data from my form to write them in my model (database).
form.py :
class HoursDeclarationForm(forms.Form):
    number_of_hours = forms.FloatField(required=True)
    presense = forms.ModelMultipleChoiceField(
        queryset=User.objects.all(),
        widget=forms.CheckboxSelectMultiple
    )
views.py :
from django.contrib.auth.models import User 
from registration.models import UserExtention
def hours_declaration (request):
    form = HoursDeclarationForm(request.POST or None)
    if form.is_valid():
        number_of_hours = form.cleaned_data['number_of_hours']
        presence = form.cleaned_data['presence']
        for user in presence :
            #this is the part I can not achieve
    return render (
        request,
        'HoursDeclaration/hours_declaration.html'
        , locals()
        )
models.py :
class UserExtention (models.Model):
    user = models.OneToOneField(User, on_delete = models.CASCADE, null=True, verbose_name='utilisateur')
    town = models.CharField (max_length=50, null=True, blank=True, verbose_name='ville')
    address = models.CharField (max_length=500, null=True, blank=True, verbose_name='adresse')
    hours_number = models.IntegerField (null=True, blank=True, verbose_name="nombre d'heure effectuée par le salarié")
Thank you for your answer !
I am very sorry but your question is not clear but you correct the code you can always edit the question
in models.py
class UserExtention (models.Model):
user = models.OneToOneField(User, on_delete = models.CASCADE, null=True, verbose_name='utilisateur')
town = models.CharField (max_length=50, null=True, blank=True, verbose_name='ville')
address = models.CharField (max_length=500, null=True, blank=True, verbose_name='adresse')
hours_number = models.IntegerField (null=True, blank=True, verbose_name="nombre d'heure effectuée par le salarié")
in form.py
from django import forms
from django.contrib.auth.models import User
class HoursDeclarationForm(forms.Form):
    number_of_hours = forms.FloatField(required=True)
    presense = forms.ModelMultipleChoiceField(
        queryset=User.objects.all(),
        widget=forms.CheckboxSelectMultiple
    )
in views.py
def hours_declaration(request):
form = HoursDeclarationForm(request.POST or None)
if form.is_valid():
    presence="a"
    number_of_hours ="3"
    form = HoursDeclarationForm
    if form.is_valid():
        number_of_hours = form.cleaned_data['number_of_hours']
        presence = form.cleaned_data['presence']
    for user in presence:
        print(user)
# this is the part I can not achieve
contex = {
    'a': form,
}
return render(request, "hours_declaration.html",contex)
in urls.py
urlpatterns = [
path('a', views.hours_declaration, name='index'),
path('admin/', admin.site.urls),
]
in hours_declaration.html
<html>
<body>
{{a}}
</body>
</html>
**you dont need HoursDeclaration dir
and create super user from this commend line python manage.py createsuperuser enter user name and email and pass then go to http://127.0.0.1:8000/admin and sign in and go to http://127.0.0.1:8000/a**
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With