16

誰でもdjango-ajax-selectsの最も単純な例を投稿できますか? フィールドと、そのフィールドに基づいてこのモデルのインスタンスを選択するために使用できるフォームを持つモデルが 1 つだけです (管理者ではなくユーザーフォーム)。

プロジェクトのドキュメントを読んでみましたが、理解するのが非常に難しいことがわかりました...また、サンプルアプリを機能させることができませんでした (ラベルとは何かわかりませんでした???) :(

また、django-ajax-selects よりも簡単な解決策があると思われる場合は、教えてください。

ありがとうございました!

4

2 に答える 2

7

簡単な例を次に示します(githubの例からですが、テストされていません)。

models.py:

class Person(models.Model):
    name = models.CharField(blank=True, max_length=100)
    email = models.EmailField()

    def __unicode__(self):
        return self.name


class Group(models.Model):
    name = models.CharField(max_length=200,unique=True)
    members = models.ManyToManyField(Person,blank=True,help_text="Enter text to search for and add each member of the group.")

    def __unicode__(self):
        return self.name

forms.py:

class GroupForm(ModelForm):

    class Meta:
        model = Group

    members  = make_ajax_field(Release,'members','person')

lookups.py:

class PersonLookup(LookupChannel):

    model = Person

    def get_query(self,q,request):
        return Person.objects.filter(name__icontains=q).order_by('name')

    def get_result(self,obj):
        return obj.name

    def format_match(self,obj):
        return self.format_item_display(obj)

    def format_item_display(self,obj):
        return u"%s" % escape(obj.name)

settings.py:

AJAX_LOOKUP_CHANNELS = {
     'person' : ('example.lookups', 'PersonLookup'),
}

views.py:

class Create(generic.CreateView):
    template_name = "create.html"
    form_class = GroupForm
    success_url = 'create'

create = Create.as_view()

urls.py:

urlpatterns = patterns('',
    url(r'^create',  view='views.create',name='create'),
    url(r'^ajax_lookup/(?P<channel>[-\w]+)$', 'ajax_select.views.ajax_lookup', name = 'ajax_lookup'),
)
于 2012-06-22T11:38:15.243 に答える
0

開始するには、クイック インストールガイドを参照する必要があります。

このドキュメントのラベルはモデルの例であり、Car、Widget、お持ちの任意のモデルと同様です。

于 2012-04-19T10:40:42.490 に答える