Django admin,list_editable中的外键字段

时间:2011-12-06 10:59:52

标签: django django-admin

你好django用户,

如何在list_editable admin属性中添加相关对象的字段?

# models.py
class Order(Model):
    reference = CharField(max_length=25)

class Product(Model):
    name = CharField(max_length=50)
    order = ForeignKey(Order)

# admin.py
class ProductAdmin:
    list_display = ('name', 'order_reference')
    list_editable = ('name', 'order__reference') # <--- THIS !

    def order_reference(self, obj):
        return obj.order.reference

我试过这种方式,但它不起作用。我还尝试在Product类中添加一个属性,但是不行,它也无法正常工作。任何线索?

感谢。

1 个答案:

答案 0 :(得分:1)

From the documentation

  

list_editable特别与其他几个选项进行交互   方法;你应该注意以下规则:

     
      
  1. list_editable中的任何字段也必须位于list_display中。您无法编辑未显示的字段!
  2.   
  3. 同一字段无法在list_editable和list_display_links中列出 - 字段不能同时包含表单和链接。
  4.   
  5. 如果这些规则中的任何一个被破坏,您将收到验证错误。
  6.   

请注意,您分别在 list_display list_editable 中使用* order_reference *和* order__reference *。总之,我认为你不能轻易做到这一点。如果你想获得灵感,你可以查看pageadmin.py in django-cms的实现,但这并不简单!!