1

私のインストールで 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>
4

1 に答える 1

0

「ModelChoiceField」を「ModelMultipleChoiceField」に変更したところ、エラーが解消されました。ソリューションの完全なメカニズムはまだ理解していませんが、誰かがこの問題に遭遇した場合に備えて、ここに投稿しています.

于 2014-10-06T06:13:43.577 に答える