2010-01-21 82 views

回答

3

一個簡單的方法是使用該設置的名稱作爲設置表中的主鍵。用同一個主鍵不能有更多的記錄,這樣Django和數據庫都可以保證完整性。

5

試試這個:

class MyModel(models.Model): 
    onefield = models.CharField('The field', max_length=100) 

class MyModelAdmin(admin.ModelAdmin): 
    def has_add_permission(self, request): 
    # if there's already an entry, do not allow adding 
    count = MyModel.objects.all().count() 
    if count == 0: 
     return True 

    return False 
5

改寫has_add_permission作品,但在給出的例子是打破在Django的權限系統(工作人員沒有必要的權限,可以添加設置)。這是一個不會打破它的:

class SettingAdmin(admin.ModelAdmin): 
    def has_add_permission(self, request): 
     base_add_permission = super(SettingAdmin, self).has_add_permission(request) 
     if base_add_permission: 
      # if there's already an entry, do not allow adding 
      count = Setting.objects.all().count() 
      if count == 0: 
       return True 
     return False