Hi Leo,

You'll want to use a model form in your forms.py, create an instance of it
in the views.py to pass 'form' as a context variable, and then just let the
model form render in the html template using {{ form }}. Check the docs:

https://docs.djangoproject.com/en/3.0/topics/forms/modelforms/

This is a pretty thorough guide:

https://simpleisbetterthancomplex.com/article/2017/08/19/how-to-render-django-form-manually.html

Cheers!

Kevin


Kevin Dublin
Etched Press Editor
Author of *How to Fall in Love in San Diego
<http://kevindublin.com/how-to-fall/>*
Follow me @parteverything

*Happiness is a state of being, just be.*
*Believe it, and it will be.*


On Tue, Dec 24, 2019 at 6:20 AM Leó Horváth <[email protected]>
wrote:

> Hi guys,
>
> I want to create a form with radio buttons that sends data to a specific
> database field.  How can I do it?
>
> My models.py looks like this:
> import datetime
> from django.db import models
> from django.utils import timezone
>
> # Create your models here.
>
> class Name(models.Model):
>     user_name = models.CharField(max_length=200)
>
>     publication_date = models.DateTimeField('date published')
>
>     age= models.IntegerField(default=0)
>
>     prof_comm_score = models.IntegerField(default=1)
>     prof_comm_status = models.IntegerField(default=1)
>
>     teamwork_score = models.IntegerField(default=1)
>     teamwork_status =  models.IntegerField(default=1)
>
>     prod_knowledge_score =  models.IntegerField(default=1)
>     prod_knowledge_status =  models.IntegerField(default=1)
>
>     part_comp_score =  models.IntegerField(default=1)
>     part_comp_status =  models.IntegerField(default=1)
>
>     relations_score =  models.IntegerField(default=1)
>     relations_status =  models.IntegerField(default=1)
>
>     strategy_score =  models.IntegerField(default=1)
>     strategy_status =  models.IntegerField(default=1)
>
>     loyality_score =  models.IntegerField(default=1)
>     loyality_status =  models.IntegerField(default=1)
>
>     overall_score = models.IntegerField(default = 7)
>
>     def __str__(self):
>         return self.user_name
>     def was_published_recently(self):
>         return self
> .publication_date >= timezone.now() - datetime.timedelta(days=1)
>
> Lets say i want 7 radio buttons to determine the value of prof_comm_score
> (which is an int ranging from 1 to 7)
>
> My html file looks like this rn:
> <body>
>         {%block content%}
>             <h1>#1 Sales profession, communication</h1>
>             <form action="" method="POST"></form>
>             {% csrf_token %}
>                 <input type="radio" name="1" id = "1" value="7">
>                 <input type="radio" name="1" id = "2" value="6">
>                 <input type="radio" name="1" id = "3" value="5">
>                 <input type="radio" name="1" id = "4" value="4">
>                 <input type="radio" name="1" id = "5" value="3">
>                 <input type="radio" name="1" id = "6" value="2">
>                 <input type="radio" name="1" id = "7" value="1">
>
>
>         {%endblock%}
>     </body>
>
>
>
> here is my git repo if needed:
> https://github.com/leocsi/salesgrade
>
> Thanks a lot,
> Leó
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/CAJBcW0xearS3cj4XD%2BT0HEOCTvSSFMeJ18dvkjMaPdzwVfXf0w%40mail.gmail.com
> <https://groups.google.com/d/msgid/django-users/CAJBcW0xearS3cj4XD%2BT0HEOCTvSSFMeJ18dvkjMaPdzwVfXf0w%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CANips4KVWWx%3DECgM37CDSwpDoKJ3KBhFREhw4H8qZcuCDgbD7g%40mail.gmail.com.

Reply via email to