0

プロジェクトでdjango-mpttを使用しています

models.py:

class Category(models.Model):
    name = models.TextField()
    parent = models.ForeignKey("self", blank=True, null=True,
                               related_name="sub_category")
    image = models.ImageField(upload_to="categories", blank=True)

mptt.register(Category)

admin.py:

class CategoryAdmin(MPTTModelAdmin):
    def formfield_for_dbfield(self, db_field, **kwargs):
        if db_field.name == 'parent':
            field = TreeNodeChoiceField(
                                        queryset=Category.objects.all(),
                                        level_indicator = u'+--',
                                                )
        else:
            field = super(CategoryAdmin, self).formfield_for_dbfield(
                                                  db_field, **kwargs)
        return field

admin.site.register(Category, CategoryAdmin)

問題は-親を選択できない、TreeNodeChoiceFieldがselectに「---」を表示しないことです。何をお勧めしますか?

4

1 に答える 1

1

required=FalseTreeNodeChoiceFieldオブジェクトを初期化するときに使用します。

field = TreeNodeChoiceField(
                            required=False,
                            queryset=Category.objects.all(),
                            level_indicator = u'+--',
                                    )

Djangoフォームフィールドのデフォルトはrequired=True、です。この場合、値としてNoneを禁止することを意味します。

于 2011-07-08T13:15:25.773 に答える