当前位置: 首页 > 面试题库 >

编写__init__函数以在Django模型中使用

潘鸿文
2023-03-14
问题内容

我正在尝试为__init__我的一个模型编写函数,以便可以通过执行以下操作创建对象:

p = User('name','email')

当我编写模型时,我有:

def __init__(self, name, email, house_id, password):
    models.Model.__init__(self)
    self.name = name
    self.email = email

这样可以正常工作,我可以将对象保存到数据库中,但是当我这样做时User.objects.all(),除非我拿出__init__函数,否则它不会拉任何东西。有任何想法吗?


问题答案:

依靠Django的内置功能并传递命名参数将是最简单的方法。

p = User(name="Fred", email="fred@example.com")

但是,如果您打算保存一些击键,建议您向类添加一个静态便捷方法,而不要弄乱初始化程序。

# In User class declaration
@classmethod
def create(cls, name, email):
  return cls(name=name, email=email)

# Use it
p = User.create("Fred", "fred@example.com")


 类似资料:
  • 我用以下代码提炼出了问题的本质: 完整来源 我有基类和Derive, Derived2: 现在我有了变量t,它可以是派生的或派生的2的实例。它也可以在运行时多次更改。 我有一个函数,它检查t是否是传递类的实例,如果它是传递类的实例或未定义的实例,则返回t。 当我调用Check Top(Derive)时,它的返回类型应该是Derive。但是在上面的jsdoc中,它的返回类型是“typeof Deri

  • 问题内容: 我想从我的模型中的模板调用一个函数,例如: 当我想从模板中调用它时:假设在渲染时,我将channel_status_list传递为 这是行不通的,我能够调用一个不消耗任何东西的函数,但是如果找到有参数的函数就无法找到该怎么做 问题答案: 你无法使用模板中的参数调用函数。你只能在视图中执行此操作。另外,你可以编写一个自定义模板过滤器,看起来可能像这样: 现在,你可以在模板中执行以下操作:

  • 问题内容: 我有一个看起来像的文件夹结构: : : : : : : 当我直接使用该模块时,它似乎按预期工作: 但是,当我在sphinx中使用自动模块时(将项目文件夹添加到sys.path之后): 我得到的页面只有: 似乎正在忽略类型语句。 但是,如果我将所有代码直接复制到每个模块/子模块的文件中,则会得到: sphinx是否不适用于文件中具有此类导入语句的模块,还是我遗漏了一个更明显的问题? 理想

  • 问题内容: 我想知道是否可以在Django模型中存储数组? 我问这个问题是因为我需要在一个字段中存储一个数组(例如[1,2,3]),然后能够搜索特定的数组并与之匹配,或者通过它的可能组合来进行匹配。 我当时正在考虑将该数组存储为s中的字符串,然后在需要搜索内容时,将值(通过过滤其他模型获得)与’[‘,’]’和’,’连接在一起,然后使用带有生成字符串。问题在于,我将必须生成每种可能的组合,然后逐个过

  • 问题内容: 我是django的新手,所以对我的新手问题感到抱歉,我 有一个模型,我需要让用户使用django表单或任何其他方式在其中编辑数据。 看上面的图像,我想显示此表单,其中已准备好填充数据,并让用户对其进行更新。 做这个的最好方式是什么 ? 编辑:这是我的views.py代码 请帮忙 问题答案: 假设你使用,请使用关键字参数,并传递你要更新的模型。 因此,如果你具有和(后者必须扩展),那么你