Django AJAX выбрать кнопку Добавить - PullRequest
1 голос
/ 19 сентября 2011

я установил приложение django-ajax-select, это замечательное приложение, чтобы иметь возможность автозаполнения, но после добавления формы в admin.py кнопка (+), с помощью которой я могу добавить новый объект, к которому я прикрепил снимок примера,

я нашел код, который разделяет значение, которое написано, перехватывая метод clean для переопределения, но в моем случае я просто хочу добавить кнопку

def clean(self, value):
if value:
    lookup = get_lookup(self.channel)
    objs = lookup.get_objects( [value] )
    if objs:
        return objs[0]
    else:
        firstname, surname = value.split(" ")
        gender = self.channel.split("_")[0]
        new_skater = Skater(name=firstname, surname=surname, gender=gender)
        return new_skater
else:
    if self.required:
        raise forms.ValidationError(self.error_messages['required'])
    return None

enter image description here

Ответы [ 2 ]

1 голос
/ 31 августа 2012

Документация показывает тот же текст, что и принятый ответ.

https://github.com/crucialfelix/django-ajax-selects#example

Либо

  1. ваш Admin класс должен наследовать от AjaxSelectAdmin
  2. вы должны использовать AjaxSelectAdmin как миксин (множественное наследование)
  3. Вы можете вставить autoselect_fields_check_can_add в свой get_form()

Третий случай следует выполнять только в том случае, если вам нужно реализовать get_form для собственных целей. Лучше просто наследовать от AjaxSelectAdmin.

Другое возможное объяснение того, почему вы получаете значок ДОБАВИТЬ, это то, что у вас нет разрешения на добавление объекта. autoselect_fields_check_can_add проверки с использованием стандартных разрешений администратора Django.

1 голос
/ 20 сентября 2011

наконец-то я нашел решение, так как оно неверно написано в документации,

в admin.py, вы должны добавить этот код, в моем коде мой админский запрос - orderAdmin

def get_form(self, request, obj=None, **kwargs):
    form = super(orderAdmin,self).get_form(request,obj,**kwargs)
    autoselect_fields_check_can_add(form,self.model,request.user)
    return form
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...