2014-11-29 2 views
-2

MySQL Workbench에서 Python Django 프로젝트를하고 있습니다.MySQL에서 테이블의 값을 업데이트하지 않습니다.

SET GLOBAL default_storage_engine=MYISAM; 

가지고 : 쿼리를 실행하여,

DatabaseError at /search/results/mobiles/ 
    (1214, "The used table type doesn't support FULLTEXT indexes") 

가 그럼 난 MYISAMINNODB에서 데이터베이스 엔진을 변경 : 내 응용 프로그램에서 검색 버튼 중 하나를 클릭하면 원래는 다음과 같은 오류가 발생했다 원래의 오류를 지나쳤습니다. 하지만 이제 Django admin UI (localhost : 8000/admin)를 변경하면 MySQL 테이블 값이 변경되지 않습니다. 이 문제를 어떻게 수정합니까?

이 내 search_category 및 SEARCH_RESULT 정의입니다 :

def search_in_category(request, slug): 
    # reset the search params, if present 
    try: 
     del request.session['search'] 
    except KeyError: 
     pass 

    return search_results(request, slug) 

def search_results(request, slug): 
category = get_object_or_404(Category, slug=slug) 
fields = list(category.field_set.all()) 
fields += list(Field.objects.filter(category=None)) 
fieldsLeft = [field.name for field in fields] 

if request.method == "POST" or 'search' in request.session: 
    ads = category.ad_set.filter(active=True, 
           expires_on__gt=datetime.datetime.now()) 
    # A request dictionary with keys defined for all 
    # fields in the category. 
    post = {} 
    if 'search' in request.session: 
     post.update(request.session['search']) 
    else: 
     post.update(request.POST) 

    sforms = prepare_sforms(fields, fieldsLeft, post) 

    isValid = True 

    for f in sforms: 
     # TODO: this assumes the form is not required 
     # (it's a search form after all) 
     if not f.is_valid() and not f.is_empty(): 
      isValid = False 

    if isValid: 
     if request.method == 'POST': 
      request.session['search'] = {} 
      request.session['search'].update(request.POST) 
      return redirect('classifieds_browse_search_results', slug=slug) 

     for f in sforms: 
      ads = f.filter(ads) 

     if ads.count() == 0: 
      return render_to_response('classifieds/list.html', 
             {'no_results': True, 
             'category': category}, 
             context_instance=RequestContext(request)) 
     else: 
      context = context_sortable(request, ads) 
      context['category'] = category 
      return render_to_response('classifieds/list.html', context, 
             context_instance=RequestContext(request)) 
else: 
    sforms = prepare_sforms(fields, fieldsLeft) 

return render_to_response('classifieds/search.html', 
          {'forms': sforms, 'category': category}, 
          context_instance=RequestContext(request)) 

답변

0

오류, 당신은 이노에서 인덱스에 전체 텍스트 필드를 자기 설명하려고한다. 이 질문에 스스로에게 물어보십시오. 컴퓨터가 어떻게 FULLTEXT 필드를 색인합니까?

InnoDB는 위대한 엔진입니다.

InnoDB 엔진에서 문제가 발생하지 않도록 FULLTEXT 필드에서 색인을 제거하십시오. 당신이 할 수없는 관리를 통해 테이블 ​​값을 변경할 수있는 이유>문제 MYISAM ==에 표 변경이

테이블가 잠겨 여기에 제기 후

+0

경우, 나는이 일 중보기 "/ 검색/결과/모빌은 /"를 DB – Geetha

+0

의 모든 전체 텍스트 필드를 사용하지 않는 건가요? – Rafael

0

입니다. 먼저 테이블이 잠겨 있는지 확인하거나 아래 명령을 사용하지 마십시오.

show open tables WHERE Table LIKE 'tb_geetha' AND In_use > 0 

다음 lockedmysql> UNLOCK TABLES;

+0

잘못 뭔가를 호출 사용하고 내 테이블 –

관련 문제