【问题标题】:Foreignkey Field with automcomplete具有自动完成功能的外键字段
【发布时间】:2014-08-05 04:47:13
【问题描述】:

以 Django 教程为例,每个 Poll 都有多个 Choices。 这是来自管理表单中的教程,略有更改(删除投票以显示在表单中并将选项限制为 5)

class ChoiceInline(admin.StackedInline):
   fieldsets = [
        (Choices,     {'fields': ['choice']}),
            ]
    model = Choice
    max_num = 5

class PollAdmin(admin.ModelAdmin):
    fieldsets = [
        (None,               {'fields': ['question']}),
        ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
    ]
    inlines = [ChoiceInline]

admin.site.register(Poll, PollAdmin)

因此,这可以在投票中添加最多 5 个选项,并且每个选项都通过文本输入字段插入。 我想要做的是,如何通过具有 js 自动完成功能的单个文本输入字段插入选择,就像创建问题时这个 SO 中的标签系统一样。

我可以处理js部分,我真的不知道如何渲染字段并保存数据。 有什么想法吗?

【问题讨论】:

    标签: django django-models django-forms django-admin


    【解决方案1】:

    使用自定义(模型)表单和小部件以及带有 ajax 端点的extending the admin urls。看看django-taggit-autosuggest,它正是为 django-taggit 库做的。

    【讨论】:

    • 看来这就是我需要的!但是那里有任何文件吗?因为我找不到。我想知道如何限制标签的数量并在外部添加建议关键字...等
    • 您可以简单地使用表单清理方法并在您的 ajax 调用中返回带有错误状态的 form.errors,而不是带有成功消息的 ok 状态。
    • 虽然我没有使用 django-taggit-autosuggest,但我确实使用了 taggit 并与 jquery 插件结合使用,它就像一个魅力。你的回答给了我很多启发,所以我将它作为答案。谢谢
    猜你喜欢
    • 2017-04-24
    • 2012-10-02
    • 2022-12-12
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 2014-12-01
    • 2022-08-15
    • 2010-11-14
    相关资源
    最近更新 更多