如何使用Django ForeignKey将模型的列链接到另一列
我有以下几种型号如何使用Django ForeignKey将模型的列链接到另一列,django,forms,sqlite,model,Django,Forms,Sqlite,Model,我有以下几种型号 class Supplier(models.Model): supplierName = models.CharField(max_length=64) zone = models.IntegerField() class Contact(models.Model): supplier = models.ForeignKey(Supplier, on_delete=models.SET("Company Deleted"), rela
class Supplier(models.Model):
supplierName = models.CharField(max_length=64)
zone = models.IntegerField()
class Contact(models.Model):
supplier = models.ForeignKey(Supplier, on_delete=models.SET("Company Deleted"), related_name="supplierC")
name = models.CharField(max_length=64)
关于html
<select name="supplier" id="supplier">
<option value="1">Supplier 1</option>
<option value="2">Supplier 2</option>
</select>
有没有办法避免supplier=supplier.objects.get(pk=request.POST['supplier'])
例如,在我们的模型中,执行类似于supplier=models.ForeignKey(supplier.id,on_delete=models.SET(“Company Deleted”),
其中,在为联系人创建新记录时,我们直接执行如下操作
def contactForm(request):
if request.method == "POST":
mydata ={}
mydata['supplier'] = request.POST['supplier']
mydata['name'] = request.POST['contact-name']
new_contact = Contact(**mydata)
new_contact.save()
有什么帮助吗?您可以使用
供应商
的id值将供应商id
参数传递给联系人
创建,而无需事先从数据库中查询
def contactForm(request):
if request.method == "POST":
mydata ={}
mydata['supplier_id'] = request.POST['supplier']
mydata['name'] = request.POST['contact-name']
new_contact = Contact(**mydata)
new_contact.save()
使用
mydata['supplier\u id']=request.POST['supplier']
。对于外键,Django会自动创建一个虚拟字段(附加\u id
),该字段实际上包含相关id。尽管我建议您实际使用表单类。请参阅@AbdulAzizBarkat谢谢它的帮助谢谢您的回答
def contactForm(request):
if request.method == "POST":
mydata ={}
mydata['supplier_id'] = request.POST['supplier']
mydata['name'] = request.POST['contact-name']
new_contact = Contact(**mydata)
new_contact.save()