Это мой шаблон. У меня есть 2 формы, одна для отправки теста, а другая для подтеста. Когда я пытаюсь отправить одну форму, я получаю ошибку не null_constraint.
<form method="POST">
{% csrf_token %}
<div class="icon-holder">
<i data-modal-target="test-popup" class="icon-cross"></i>
</div>
<div class="input-group">
<input type="text" name="name" placeholder="Test name" />
</div>
<div class="button-group">
<button type="submit">Submit</button>
</div>
</form>
</div>
<div id="menu-test-popup">
<form method="POST">
{% csrf_token %}
<div class="icon-holder">
<i data-modal-target="menu-test-popup" class="icon-cross"></i>
</div>
<div class="input-group">
<label for="test-select">Test Name:</label>
<select name="test-select" id="test-select">
{% for test in test %}
<option value="{{test.name}}" name="choices">{{test.name|title}}</option>
{% endfor %}
</select>
</div>
<div class="input-group">
<input type="text" name="subtest" placeholder="SubTest name" />
</div>
<div class="input-group">
<input type="text" name="reference" placeholder="Reference rate" />
</div>
<div class="input-group">
<input type="text" name="unit" placeholder="Unit" />
</div>
<div class="button-group">
<button type="submit">Submit</button>
</div>
</form>
это мои модели. В моих моделях у меня есть тест и подтест.
class Test(models.Model):
name = models.CharField(max_length=100)
def __str__(self):
return self.name
class Subtest(models.Model):
name = models.CharField(max_length=100)
test = models.ForeignKey(Test,on_delete=models.CASCADE,related_name='subtest',blank=True, null=True)
unit = models.CharField(max_length=10)
reference_value = models.IntegerField()
selected = models.BooleanField(default=False)
def __str__(self):
return self.name
это мой взгляд. А 2-й для моего удобства * template_context_processor
def home(request):
name = None
if request.method == 'POST':
name = request.POST.get('name')
choices = request.POST.get('choices')
subtest = request.POST.get('subtest')
reference = request.POST.get('reference')
unit = request.POST.get('unit')
test = Test()
subtest = Subtest()
test.name = name
subtest.test = choices
subtest.name = subtest
subtest.unit = unit
subtest.reference_value = reference
test.save()
subtest.save()
print(name)
return redirect('home')
return render(request,'main.html',{})
def list_subtest(request):
return {'subtest':Subtest.objects.all(),'test':Test.objects.all().prefetch_related('subtest')}