2010-01-21 25 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 
相关问题