2017-06-21 147 views
0

我有2個模型。 一個人擁有另一個外鍵。django admin如何操作OneToMany相關的對象(不只是內聯)

說:

class Organization(models.Model): 
    title = models.CharField(max_length=300) 

class User(models.Model): 
    name = models.CharField(max_length=300) 
    organization = models.ForeignKey(Organization) 

我想告訴誰在當前組織工作中organizationAdmin,樣改變鏈接的列表的所有用戶。

應該可以

  • 添加新用戶
  • 選擇現有用戶(沒有相關的現行組織)和他的組織設置爲當前

無需內嵌編輯

就像userAdmin中的權限+添加和更改它們

有沒有現成的解決方案?不用手做出形式

+0

以及就緒解決方案是管理面板,只需添加到它模型。並且你不得不做任何事情,在用戶部分存在許可,所以其他非超級用戶的用戶可以進入該部分。 –

回答

0

你可以做到這一點與exclude

class UserInline(admin.TabularInline): 
    model = User 
    exclude = ['name', 'other_fields'] 

或者你可以使用多對多關係:

class User(models.Model): 
    name = models.CharField(max_length=300) 

class Organization(model.Model): 
    title = models.CharField(max_length=300) 
    users = models.ManyToManyField(User) 
+0

我應該能夠'選擇現有用戶並將其組織設置爲當前' – piquick

+0

因此,您可以使用ManyToManyField,它對您的情況來說將是完美的。 –