Как произвести запись в зависимую модель?
Пытаюсь передать email через куки в другую страницу и записать данные в зависимую модель. Из forms.py приходит форма со скрытым input'ом, далее в HTML этому input'у присваивается value=email из кук. Однако не могу понять как записать эти данные в зависимую модель - AboutInfo.
forms.py:
from django import forms
class info_form(forms.Form):
name = forms.CharField(max_length=100)
language = forms.ChoiceField(choices=((1, "English"), (2, "Russian")))
info = forms.CharField()
myEmail=forms.CharField(widget = forms.HiddenInput())
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Bot</title>
<style>
.field{font-weight:bold;}
.error{color:red;}
</style>
</head>
<body class="container">
<div id="slide" style="display:none;">
<form method="POST" id="form">
{% csrf_token %}
<table>
{{ info_form }}
</table>
<input type="submit" value="Добавить" id="add" >
</form></div>
<script>
email=localStorage.getItem("email");
function myFunction() {
document.getElementById("id_myEmail").value = email;
}
</script>
views.py:
def foo(request):
if request.method == "POST":
XP=info_form(request.POST)
if XP.is_valid():
mail = GeneralInfo.objects.get(name=XP.cleaned_data["myEmail"])
mail.AboutInfo_set.create(
name = XP.cleaned_data["name"],
Bot_type = XP.cleaned_data["language"],
Bot_risk = XP.cleaned_data["info"],
)
return HttpResponseRedirect("")
return render(request, "error.html")
Models.py:
from django.db import models
class GeneralInfo(models.Model):
user_id = models.IntegerField(auto_created=True, primary_key=True, serialize=False, verbose_name='user_id')
email = models.EmailField()
password = models.CharField(max_length=20)
class AboutInfo(models.Model):
generalInfo = models.ForeignKey(GeneralInfo, on_delete = models.CASCADE)
name = models.CharField(max_length=100, blank=True)
language = models.IntegerField(blank=True)
info = models.TextField(max_length=200, blank=True)
Как произвести эту запись правильно? Подозреваю что я наделал костылей.