【问题标题】:django-chosen in django admin: new item in inline forms does not workdjango admin 中的 django-chosen:内联表单中的新项目不起作用
【发布时间】:2017-02-08 08:25:26
【问题描述】:

我有以下例子:

models.py

class Book (models.Model):
    title = models.CharField(u'Book Title', max_length=300)

class AthoursBook(models.Model):
    chapter = models.IntegerField(max_length=2)
    booksathours = models.ManyToManyField(Book, through=u'Athour', verbose_name=u'Athours on book')

class Athour(models.Model):
    name = models.CharField(u'Athour Name', max_length=300)
    book = models.ForeignKey(Book)

admin.py

class AthourAdmin(admin.ModelAdmin):
    inlines = [BookInline]
    extra = 0

class BookInlineForm(ModelForm):
    class Meta:
        model = Book
        widgets = {
                'book': Select(attrs={'class': 'chozen-css'}),
            }

class BookInline(admin.TabularInline):
    model = Book
    form = BookInlineForm
    extra = 0

我想在 django admin 中使用 django-chosen 但它不适用于添加新按钮(在内联表单上),如图所示......有什么想法吗?谢谢! 我也尝试过自己选择,但没有运气......

我的意思是这可能吗? - 内联遵循我的 manytomany 模型,由于许多其他原因以这种方式实现... Django 版本 1.5。

【问题讨论】:

    标签: python django django-models django-admin


    【解决方案1】:

    这不是 django-chosen 的问题。

    问题是新行默认是隐藏的和空的。当你点击添加链接时,会显示并填充这一行,

    所以首先你需要恢复空选择的 .chosen() ,然后在选择填充后应用 .chosen 方法() 。

    我解决了这个问题,在 change_form.html 模板中添加了以下 javascript

    <script type="text/javascript">
    jQuery(document).ready(function ($){
        $("#book_set-group select").chosen();
        // reverting chosen on the SELECT of the empty row
        $("#id_book_set-__prefix__-athour").chosen('destroy');
    
        $('#book_set-group .add-row').click(function(e){
            $("#book_set-group select").chosen();
            // reverting chosen on the SELECT of the empty row
            $("#id_book_set-__prefix__-athour").chosen('destroy');
        })
    });
    </script>
    

    【讨论】:

    • 感谢您的回复。它仅适用于一个新行,我认为是因为在那之后非常选择转换为 chozen-select 事件无法创建正确的新选择行...
    猜你喜欢
    • 1970-01-01
    • 2011-07-11
    • 2011-02-23
    • 1970-01-01
    • 2014-11-04
    • 2014-10-23
    • 2018-02-22
    • 1970-01-01
    • 2011-02-20
    相关资源
    最近更新 更多