我是一个初学者,可能这个问题有一个已知的答案,但我听不懂。我有3个模型:SO(操作系统),PC和SO_PC。用户可以创建SO和PC实例。我正在尝试创建PC时,中间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>