如何使用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()