2014-12-28 4 views
0

자동 완성 표시가 지원되는 다중 선택 필드에 새로운 외래 키 값을 추가 할 수있는 양식이있는 django 앱을 작성하고 있습니다. 문제는 최근에 추가 된 값이 양식을 저장할 때 "유효하지 않습니다"라는 것입니다. 새로운 형태로 사용하려고 할 때조차도 아닙니다. 나는 그 값이 SQLite 데이터베이스에 쓰여졌지만 django 앱이 다시 시작될 때까지는 사용할 수 없다는 것을 알았습니다. 일반적인 noob django 사용자가 실패했거나 어떤 종류의 버그입니까? 나는 약간의 코드를 제공 할 수 있지만, 내가 잘못했을 때 나는 전혀 모른다.Django가 최근에 추가되었습니다. 형식에 유효한 외부 키 값이 유효하지 않습니다.

코드 :

모델 :

class AilmentDict(models.Model): 
    name = models.TextField() 

    class Meta: 
     managed = False 
     db_table = 'ailment_dict' 

    def __unicode__(self): 
     return u'%s' % (self.name) 
    def __str__(self): 
     return u'%s' % (self.name) 

형태 :

class AilmentDictForm(forms.ModelForm): 
    name = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control'}), max_length=30, label='Objaw', required=True) 

    class Meta: 
     model = AilmentDict 

보기 :

@login_required 
def add_ailment(request): 

    if request.method == 'GET': 
     form = AilmentDictForm() 
    elif request.method == 'POST': 
     form = AilmentDictForm(request.POST) 
     if form.is_valid(): 
      ailment = form.save(commit=True) 
      return render(request, 'examinations/add', {'added': ailment}) 
     else: 
      print(form.errors) 

    return render(request, 'examinations/addailment.html', {'form': form}) 

추가 :

시험 양식에

autocomplete_light.register(AilmentDict, 
          search_fields = ['^id', 'name'], 
          add_another_url_name = 'addailment', 
          attrs={ 
           'placeholder': '', 
           'data-autocomplete-minimum-characters': 1, 
          }, 
          widget_attrs={ 
           'data-widget-maximum-values': 0, 
          }, 
          ) 

필드 :

<script type="text/javascript"> 
opener.dismissAddAnotherPopup(
    window, 
    "{{ added.id }}", 
    "{{ added.name }}" 
); 
</script> 

autocomplete_light 등록 당신은 아무것도 더 필요하면 나도 몰라

ailments = autocomplete_light.MultipleChoiceField('AilmentDictAutocomplete', label='Objawy', required=False) 

.

+1

당신을 돕기위한 코드를 게시해야합니다! –

+0

코드 게시 됨. 더 이상 필요 하신가요? 나는 내가 어디에서 실패했는지 정말로 모른다. – Vabi

답변

1

자동 완성 표시등에 대해 알지 못하지만 MultipleChoiceField 대신 ModelMultipleChoiceField을 사용해야합니다.

관련 문제