在创建不询问DB的相关对象时,是否可以使用PK作为FK?

时间:2015-04-29 07:41:57

标签: python django django-models

我尝试使用此代码创建新的M2M对象

course_id = int(request.POST['course'])
    if not Status.objects.get(course=course_id, user=request.user.profile, role="student"):
        rel = Status(course=course_id, user=request.user.profile,
                     role="student")
        rel.save()

结果是

ValueError: Cannot assign "1": "Status.course" must be a "Course" instance.

我知道如果我这样做的话可以使用:

course = Course.objects.get(pk=request.POST['course'])
rel = Status(course=course, user=request.user.profile,
                 role="student")

但是通过这种方式我从DB询问课程对象(在分配之后我不需要这个)。我认为这是开销。

可以分配一个只有PK的相关对象,而不是从DB询问这个对象吗?

1 个答案:

答案 0 :(得分:0)

你有问题:

2015-04-29 07:12:52+0000 [HTTPChannel,0,98.188.155.163] 
{  
   'host':'104.197.53.229',
   'content-type':'application/json',
   'connection':'Keep-Alive',
   'authorization':'Bearer InvalidToken:http://104.197.5.2/MyApp/route?TN=12402735:2123'
}

状态正在等待一个couse实例并且您正在传递ID。 Intead你做了什么:

if not Status.objects.get(**course=course_id**, user=request.user.profile, role="student"):