草庐IT

admin_init

全部标签

python - 在 Python 中从 __init__ 调用 setter

如何从__init__中调用Python(v2.7)setter属性?我编写了以下类(class),但我不知道如何更改它以使其正常工作。我得到一个AttributeError:'test'objecthasnoattribute'_x'异常。这里有一些类似的问题,但到目前为止找不到答案。这个想法是当调用初始化程序进行一些处理/切片并将结果分配给属性时classtest(object):def__init__(self,a,b):self._x=self.x(a,b)@propertydefx(self):returnself._x@x.setterdefx(self,a,b):self

python - django admin - 编辑或查看模型的组权限

我正在寻找一种方法来自定义Django管理以支持基于用户组的权限。例如,我刚刚创建了Developers组,现在我还创建了Tickets模型,使用AdminModel来指定如何列出数据。我想让这个模型只对开发人员可见,并且对不在这个组中的彼此隐藏(例如,根据组过滤View)。我已经阅读了很多文档,但无法真正找到并理解如何让它工作。为了安全起见,我还需要在运行时检查用户组,以便为​​特定模型(我已经对开发人员组以外的人隐藏的对象)添加或删除对象,否则它只需要知道URL使用模型:s这看起来像是一项简单的任务,但也许我遗漏了一些东西……任何第3方中间件,或者只是一种实现方式?如果需要,我也准

python - 如何从包的更深部分访问 __init__.py 变量

对于另一个__init__.py问题,我深表歉意。我有以下包结构:+contrib+--__init__.py|+database+--__init__.py|+--connection.py在顶层__init__.py我定义:USER='me'。如果我从命令行importcontrib,那么我可以访问contrib.USER。现在,我想从connection.py访问contrib.user但我做不到。当我发出fromcontrib.databaseimportconnection时调用顶层__init__.py,因此Python实际上是在创建参数USER.所以问题是:如何从chil

python - 通过 django admin 将 excel 数据导入模型

我需要Django管理界面来接受管理员上传的Excel文件,其中每个Excel文件中的数据都被插入到我的数据库模型中。我怎样才能使这样一个“上传”按钮出现在Django模型管理页面上,单击该按钮要求管理员选择一个.xls文件,一旦上传完成,其数据就会被添加到数据库中完成了吗? 最佳答案 我已经这样做了,但我只是设置了一个带有文件上传的简单View(实际上这比将它直接添加到Django管理页面更有意义,因为一个编辑页面=一个模型实例,我假设你的excel包含多个模型)。在forms.py中,一个带有文件上传字段的简单表单classIm

python - django-admin 自定义命令中的两个参数

我有一个工作django-admin自定义命令,我用它来用新信息填充我的数据库。同样,一切正常。但是,我现在稍微更改了我的模型和函数,以接受两个参数作为元组-名字和姓氏,而不仅仅是“名称”。下面的先前代码-工作。使用“manage.pyxyzname1name2name3...等运行(不同参数之间的空格)fromdjango.core.management.baseimportBaseCommand,CommandErrorfromdetail.modelsimportABCfromdetail.parserimportDEFclassCommand(BaseCommand):args

python - 在 Python 中覆盖 __new__ 和 __init__

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Python'suseof__new__and__init__?我的理解是,__init__与Java中的构造函数不同,因为__init__只初始化一个已经隐式构造的对象(因为__init__在__new__之后调用)。但是,我需要定义的所有内容都使用了Java中“构造函数”的后一个属性。在什么情况下程序员会想要覆盖__new__?编辑:为了记录,我问的部分原因是我想知道覆盖new与在已接受的中使用单独的类方法相比有什么优势/劣势回答这个问题:MovingBeyondFactoriesinPython

python - django admin 搜索多个词

当搜索表达式有多个单词并且我想执行startswith搜索时,我在使用search_fields时遇到问题我有课classFoo(models.Model):kw=models.CharField(max_length=255)...classFooAdmin(admin.ModelAdmin):search_fields=('^kw',)'^'表示我想执行startswith搜索。如果我正在寻找kw'foofuu',django将执行查询:select*fromapp_foowhere`foo`.`kw`like'foo%'and`foo`.`kw`like'fuu%'这个查询显然给

python - TypeError : __init__() should return None, 不是 'int'

我正在处理这个tutorial.我正在迭代地解决这个问题。此时我有以下二进制类:classBinary:def__init__(self,value):self.value=str(value)ifself.value[:2]=='0b':print('abinary!')self.value=int(self.value,base=2)elifself.value[:2]=='0x':print('ahex!')self.value=int(self.value,base=16)else:print(self.value)returnint(self.value)我正在使用pytes

Python __init__ 返回创建失败

首先,我知道Python中类的__init__()函数不能返回值,所以遗憾的是这个选项不可用。由于我的代码结构,在类的__init__函数中进行数据断言(并提示用户提供信息)是有意义的。但是,这意味着对象的创建可能会失败,我希望能够从中优雅地恢复。我想知道继续此操作的最佳方法是什么。我考虑过将全局bool值设置为“有效构造”标志,但我不想这样做。任何其他想法(除了重组之外,断言可以在初始化之外发生,并且值作为参数传递)?我基本上是在寻找一种在初始化期间成功返回0并在失败时返回-1的方法。(像大多数C系统调用一样) 最佳答案 您可以在

python - 在对象的第二次初始化时,为什么 __init__ 在 __del__ 之前被调用?

考虑以下示例代码classA:def__init__(self,i):self.i=iprint("Initializingobject{}".format(self.i))def__del__(self):print("Deletingobject{}".format(self.i))foriin[1,2]:a=A(i)在循环中创建对象旨在确保在创建新的A对象之前调用A的析构函数。但显然发生了以下情况:Initializingobject1Initializingobject2Deletingobject1Deletingobject2为什么只有在新对象初始化后才调用对象1的析构函数