Я новичок и, возможно, на этот вопрос есть известный ответ, но я не могу его получить.У меня 3 модели: SO (Операционная система), ПК и SO_PC.Пользователь может создавать экземпляры SO и ПК.Я пытаюсь, что когда вы создаете ПК, промежуточный PC_SO автоматически завершается.Я знаю, что есть над чем поработать, но я не знаю как.Спасибо всем.
Модели:
class SO(models.Model):
name = models.CharField(max_length=30)
description = models.CharField(max_length=300)
def __str__(self):
return self.name
class PC(models.Model):
number = models.CharField(max_length=10)
details = models.CharField(max_length=300)
so = models.ManyToManyField(SO, through='PC_SO')
def __str__(self):
return self.number
class PC_SO(models.Model):
pc = models.ForeignKey(PC, verbose_name=u'PC', on_delete=models.CASCADE)
so = models.ForeignKey(SO, verbose_name=u'SO', on_delete=models.CASCADE)
Форма:
class pcForm(forms.ModelForm):
class Meta:
model = PC
fields = ('id','number', 'details', 'so')
Мой фактический вид:
def pcCreate(request):
if request.method == "POST":
form = pcForm(request.POST)
if form.is_valid():
pc = form.save(commit=False)
pc.save()
return redirect('views.pcsDetail', pk=pc.pk)
else:
form = pcForm()
return render(request, 'crearPc.html', {'form': form})
Шаблон:
<form method="POST" class="pc-form">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn-default">Save</button>
</form>