2011-09-19 73 views
1

我安裝的Django的Ajax-選擇應用程序, 其精彩的應用程序有自動完成選項, 但在admin.py 添加形式(+)按鈕,這是我可以補充後新對象我裝戴例子的快照,Django的AJAX選擇添加按鈕

,我發現這是分裂什麼掛鉤的清潔方法重寫, 但對我來說我只是想添加按鈕寫入的值代碼

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

回答

1

終於讓我找到在admin.py 在文檔文檔誤寫成的解決方案作爲其,

你應該添加此代碼,我在我的凱德CALSS管理是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 
1

文檔顯示與接受的答案完全相同的文本。

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

要麼

  1. Admin類必須從AjaxSelectAdmin
  2. 繼承你應該使用AjaxSelectAdmin作爲一個mixin(多繼承)
  3. 你可以在你get_form()
  4. 插入 autoselect_fields_check_can_add

如果您需要爲您自己的其他目的實施get_form,則只需執行第三種情況。最好從AjaxSelectAdmin繼承。

爲什麼你得到一個ADD圖標的其他可能的解釋是你沒有權限添加對象。 autoselect_fields_check_can_add使用Django的標準管理權限進行檢查。