如何将数据保存到Django中的Foriegn密钥中



在我的django项目中,我有两个模型

类别和另一个是铅

类别是我正在使用的第三方应用程序的模型。

class CustomerLeads(models.Model):
    customer_name = models.CharField(max_length=50,null=True, blank=True)
    item_required = models.ForeignKey(Category,null=True, blank=True)

views.py:

if request.method == 'POST':
    name = request.POST['customername']
    item = request.POST['item']
    customer_lead_obj = CustomerLeads.objects.create(customer_name = name)
    customer_lead_obj.item_required = item
    customer_lead_obj.save()

当我想保存时,错误会出现:

Cannot assign "u'Saari'": "CustomerLeads.item_required" must be a "Category" instance.

在这里,萨里是我发布表格时得到的值。

很明显,request.POST['item']不是Category实例,您需要基于request.POST['item']

从数据库中读取类别实例

您可以做:

item = request.POST['item']
cat = Category.objects.get(item=item)  # if Category has item field

现在,您可以这样使用cat

customer_lead_obj.item_required = cat

如果item不是唯一的,则需要传递可以使用的属性来识别类别。而不是item,您可以通过cat_id,例如:

cat_id = request.POST['cat_id']
cat = Category.objects.get(id=cat_id)  # or (pk=cat_id)
# ...
customer_lead_obj.item_required = cat

最新更新