Liste_editable'ını nesne başına isteğe bağlı olarak yapmak için herhangi bir yer var mı? Örneğin readonly fields özniteliği bu seçeneğe sahiptir, bu da changelist_view öğesini etkilemez.Django koşullu yönetici listesi_editable
class MyAdmin(admin.ModelAdmin):
readonly_fields = ('foo',)
def get_readonly_fields(self, request, obj=None):
fields = super(MyAdmin, self).get_readonly_fields(request, obj=obj)
if obj.status == 'CLOSED':
return fields + ('bar',)
return fields
Aynı şey, list_display ve diğer bazı öznitelikler için elde edilebilir. 'Get_list_editable_fields' yöntemi yok gibi görünüyor.
Bazı satırların açıkça değiştirilememesini istiyorum, ancak kaba bir hatayı yükseltmekten başka bir işe yaramıyor gibi görünüyor. Bu özellik hakkında herhangi bir belge bulamadım ya
Bir widget'ı bir liste_display alıcısı aracılığıyla yapmak mümkün olabilir mi? Alasdair geri bildirimini kullanarak
class MyAdmin(admin.ModelAdmin):
list_display = ('get_bar',)
list_editable = ('get_bar',)
def get_bar(self, obj):
return widget or str(obj.bar) # ???
get_bar.allow_tags = True
güncelleme: Dediğiniz gibi
def get_changelist_formset(self, request, **kwargs):
"""
Returns a FormSet class for use on the changelist page if list_editable
is used.
"""
# I run through this code for each row in the changelist, but there's nothing in kwargs, so I don't know how to use the instance as a guide to which fields should be in list_editable?
defaults = {
"formfield_callback": partial(self.formfield_for_dbfield, request=request),
}
defaults.update(kwargs)
return modelformset_factory(
self.model, self.get_changelist_form(request), extra=0,
fields=self.list_editable, **defaults
)
ben yönteminde son örneğini nasıl anlamıyorum, ben her satır için yöntemiyle çalışır, ancak kwargs olduğunu boş? benim güncel soru görmek – trb
Cevap nedir, ben yönetici kodu içinde oldukça derin emin değilim! Bunun yerine 'get_changelist_form'unu da geçersiz kılmanız gerekebilir. İyi şanslar! – Alasdair
Bu beni doğru yolda ayarladı .. Ben iki kez admin (proxy model hack gerektiren) modelini kayıt ve kendi yönetici kural kümesi oluşturma sona erdi. Bu gereksinim gerçekten django admin sınırlarını vurur :-) – trb