在我的django项目中,我有两个模型
分类和另一个是Lead
类别是来自我正在使用的第三方应用的模型。
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.
在这里,saari是我发布表单时获得的值。
答案 0 :(得分:2)
很明显,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