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

Django是否可以自动创建相关的一对一模型?

穆招
2023-03-14
问题内容

我在不同的应用程序中有两个模型:modelA和modelB。他们有一对一的关系。django有什么方法可以在保存模型A时自动创建并保存模型B?

class ModelA(models.Model):
    name = models.CharField(max_length=30)

class ModelB(models.Model):
    thing = models.OneToOneField(ModelA, primary_key=True)
    num_widgets = IntegerField(default=0)

当我保存一个新的ModelA时,我想要一个条目自动保存在ModelB中。我怎样才能做到这一点?有没有一种方法可以在ModelA中指定呢?还是这不可能,我只需要在视图中创建并保存ModelB?

编辑说模型在不同的应用程序中。


问题答案:

看看django-annoying中的AutoOneToOneField 。从文档:

from annoying.fields import AutoOneToOneField

class MyProfile(models.Model):
    user = AutoOneToOneField(User, primary_key=True)
    home_page = models.URLField(max_length=255)
    icq = models.CharField(max_length=255)

(django-annoying是一个很棒的小程序库,其中包含诸如render_to装饰器以及get_object_or_None和get_config函数之类的宝石)



 类似资料:
  • 问题内容: 是否可以自动关闭?即,代替: …我能说......么: …在Java 7中? 问题答案: 不,该接口(也不是该类)都未实现该接口,而新的try- with-resource语法必须使用该接口。 如果您想使其工作,可以编写一个简单的包装器: 现在您可以编写如下代码: 我认为您最好还是坚持使用旧语法。使锁定逻辑完全可见是更安全的。

  • 问题内容: 有什么方法可以从中创建对象吗? 我的要求是从RAR读取文件。我不是要写一个临时文件,而是要在RAR存档中找到一个文件。 问题答案: 您需要创建新文件并将内容复制到该文件: 我使用方便来避免手动复制流。它还具有内置缓冲。

  • 问题内容: 是否可以创建一个使用EasyMock实现多个接口的模拟对象? 例如,接口和接口? 在Rhino Mocks中,创建模拟对象时可以提供多个接口,但是EasyMock的方法仅采用一种类型。 是否可以通过EasyMock来实现此目的,而不必依靠创建扩展了和的临时接口,然后进行模拟的后备呢? 问题答案: EasyMock不支持此功能,因此您会陷入临时接口的后备状态。 顺便说一句,我闻到了一些代

  • 本文向大家介绍Django 创建您的第一个模型,包括了Django 创建您的第一个模型的使用技巧和注意事项,需要的朋友参考一下 示例 通常在models.py应用程序子目录下的文件中定义模型。在Model类的django.db.models模块是一个很好的起点类来扩展你的模型。例如: 模型中的每个属性代表数据库中的一列。 title 是最大长度为100个字符的文本 author是ForeignKe

  • 问题内容: 例如,当我创建一个新类时,我得到以下信息: 这样放置支架时,我 讨厌 它。有没有一种方法可以使它创建如下内容: 问题答案: 只需遵循以下步骤: 导航 导航 选择以下 语言:Java 分类:大括号 在“类声明,方法声明等”中 大括号位置:新行

  • 让我们假设我有一个实体类Foo,它包含一些字段、getter、setter和构造函数。例如: 然后我想知道a或b何时改变。我知道javaFX中有一个ObjectProperty。所以我要创建对象属性: 然后,为了了解a和b字段的更改,我添加了ChangeListener: 然后进行实验: 工作正常,但下一行: 不调用侦听器。原因很清楚。最后一行实际上没有更改Foo对象(引用保持不变)。 我有一些可