django-mptt и ForeignKey с пробелом = True - PullRequest
0 голосов
/ 08 июля 2011

Я использую 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.Что бы вы могли порекомендовать?

1 Ответ

1 голос
/ 08 июля 2011

Используйте required=False при инициализации объекта TreeNodeChoiceField.

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

Поля формы Django по умолчанию равны required=True, в этом случае это означает, что в качестве значения запрещено None.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...