2013-03-10 2 views
0

"ObjectId"로 필드를 얻는 메소드를 찾고 있습니다django에서 "ObjectId"mongodb의 필드를 어떻게 찾을 수 있습니까?

하지만, 찾을 수 없습니다.

나는 그러므로 내가 코드를 아래에 시도

class Entries(models.Model): 
    subject = models.CharField(max_length=120, null=False) 
    content = models.TextField(null=False) 
    created = models.DateTimeField(auto_now_add=True, auto_now=True) 
    writer = models.CharField(max_length=30, null=False) 


@csrf_exempt 
def viewPost(request, entry_number): # ex) entry_number = '513c780210ae920f58762d3d' 
    e = Entries.objects.get(id = entry_number) # error!! 
    return HttpResponse('zz') 

이 코드는 오류가 발생 항목 모델을 decleared.

e = Entries.objects.get(_id = entry_number) # error!! 
e = Entries.objects.get(pk = entry_number) # error!! 
e = Entries.objects.get(id = entry_number) # error!! 
e = Entries.objects.get(_id = ObjectId(entry_number)) # error!! 
e = Entries.objects.get(pk = ObjectId(entry_number)) # error!! 
e = Entries.objects.get(id = ObjectId(entry_number)) # error!! 
e = Entries.objects(id = entry_number) # error!! 

는 나에게 보여 메시지

따라서
'invalid literal for int() with base 10: '513c780210ae920f58762d3d', ... 

, 지금은

d = entries_table.find_one({'_id' : ObjectId(entry_number)}) 
return render_to_response('view.html', {'ROOT_URL':ROOT_URL, 
             'entry':d, 'id':d['_id']}) 

누군가가

+0

id는 number (int) 만 허용하기 때문에 오류가 발생합니다. 입력 값 = 513c780210ae920f58762d3d를 보았습니까? 문자는 – catherine

+0

예, 알고 있습니다. 그러나 나는 objectid로 들어가고 싶습니다. – geeeek

+0

좋아, objectId에 대한 검색을 시도합니다 – catherine

답변

0

장고 ORM은 아무튼 사용하는 데 도움이 (장고의 ORM없이) pymongo를 사용하고 지금 MongoDB를 지원하지 않습니다. 대신 PyMongo를 사용하십시오.

+0

"save()"방법은 올바른 작업을합니까? – geeeek

관련 문제