У меня есть веб-сайт, который позволяет пользователям выбирать несколько увлечений, которые им нравятся.В настоящее время веб-сайт загружает эти хобби из модели и перечисляет их с флажком.То, что я хочу сделать, - это когда пользователь сохраняет форму, он также должен сохранить эти значения флажков в базе данных - т. Е. Если они отмечают «Футбол», база данных должна сохранить тот факт, что этот пользователь любит футбол.Я новичок в Django и Python, поэтому не слишком уверен, как это сделать.Вот код, который я использую.Это файл Models.py для хобби:
TYPES = (
("Football", "Football"),
("Cricket", "Cricket"),
("Swimming", "Swimming"),
("Cycling", "Cycling")
)
class Hobby(models.Model):
myfield = models.CharField(max_length=50, choices = TYPES, default=TYPES[0], null=True)
football = models.BooleanField(default = False)
cricket = models.BooleanField(default = False)
swimming = models.BooleanField(default = False)
cycling = models.BooleanField(default = False)
Это соответствующий файл views.py:
def profile(request, user):
# use this for debugging:
# import pdb; pdb.set_trace()
if 'email' in request.POST:
email = request.POST['email']
gender = request.POST['gender']
dob = request.POST['dob']
## hobby = request.POST['hobby']
if user.profile:
user.profile.email = email
user.profile.gender = gender
user.profile.dob = dob
## user.profile.hobby = hobby
user.profile.save()
else:
profile = Profile(email=email, gender=gender, dob=dob)
profile.save()
user.profile = profile
user.save()
context = {
'appname': appname,
'username': user.username,
'profile' : user.profile,
'all_hobbies': [hobby[0] for hobby in TYPES],
'loggedin': True
}
return render(request, 'mainapp/profile.html', context)
И, наконец, код HTML / JS для отображения информации:
<span class="fieldname">Hobbies</span>
{% for hobby in all_hobbies %}
<input type="checkbox" name={{hobby}} value={{hobby}}> {{hobby}}<br>
{% endfor %}
<input type='submit' value='Save'>
Мне нужен способ проверить, были ли отмечены флажки, и если да, изменить значение BooleanField в базе данных / модели на True или False.Тем не менее, я не уверен, где это сделать, в представлениях или коде JS.Может ли кто-нибудь помочь мне здесь?Большое спасибо.