私のインストールで Django autocomplete_light (バージョン: 2.0.0a18) を取得しようとしています。オートコンプリート フィールドのすぐ隣にある [新しいアイテムを追加] ボタンも使用します。既存のアイテムでオートコンプリートを使用でき、[新規追加] ボタンを使用して新しいアイテムを作成できます。ただし、新しいアイテムを追加した後、主キーが利用可能な選択肢の1つではないというエラーが表示され続けます。
誰かがこのセットアップの何が問題なのかを理解するのを手伝ってもらえますか?
models.py:
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class Skill(models.Model):
name = models.CharField(max_length=200, unique=True)
def get_absolute_url(self):
return urlresolvers.reverse(
'skill_update', args=(self.pk,))
def __unicode__(self):
return self.name
フォーム.py:
from django import forms
from feedback.models import *
from django.forms.extras.widgets import SelectDateWidget
from django.contrib.admin import widgets
from functools import partial
from django.template import RequestContext, Context
import autocomplete_light
DateInput = partial(forms.DateInput, {'class': 'datepicker'})
autocomplete_light.autodiscover()
class ReportForm(forms.ModelForm):
start_date = forms.DateField(help_text="Please enter the Start Date: ", widget=DateInput())
end_date = forms.DateField(help_text="Please enter the End Date: ",widget=DateInput())
skills = autocomplete_light.MultipleChoiceField('SkillAutocomplete',help_text="Skills used in this period: ")
class Meta:
# Provide an association between the ModelForm and a model
model = Report
exclude = ["report_owner"]
SkillForm = autocomplete_light.modelform_factory(Skill)
autocomplete_light_registry.py:
import autocomplete_light
from django.contrib.auth.models import User
from feedback.models import Skill
autocomplete_light.autodiscover()
autocomplete_light.register(Skill,add_another_url_name='skill_create',attrs = {
'data-autcomplete-minimum-characters': 1,
'placeholder': 'Start typing skill name ...',
})
skill_form.html:
<html>
<body>
<form method="post" action="">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Create New Skill" class = "btn btn-primary btn-lg"/>
</form>
<script src="{{ STATIC_URL }}jquery.js" type="text/javascript"></script>
{% include 'autocomplete_light/static.html' %}
</body>
</html>