标签: models

models.py变得越来越大,打破它的最佳方法是什么?

来自我的主管的指示:"我想避免在其中添加任何逻辑models.py.从现在开始,让我们将其用作访问数据库的类,并将所有逻辑保留在使用模型类的外部类中,或者将它们包装起来."

我觉得这是错误的方式.我认为保持模型逻辑只是为了保持文件小是一个坏主意.如果逻辑在模型中是最好的,那么无论文件大小如何,它都应该去.

那么有一个简单的方法来使用包含?在PHP中,我想向主管建议我们只有models.pyinclude()来自其他地方的模型类.从概念上讲,这将允许模型具有我们想要的所有逻辑,但通过增加文件数量来减少文件大小(这会导致较少的修订控制问题,如冲突等).

那么,是否有一种从models.py文件中删除模型类的简单方法,但仍然可以使用所有Django工具的模型?或者,对于"大型"models.py文件的一般问题,是否存在完全不同但优雅的解决方案?任何输入将不胜感激.

python django django-models models

86
推荐指数
3
解决办法
2万
查看次数

重用R中内置的模型

在R中构建模型时,如何保存模型规范,以便可以在新数据上重复使用?假设我对历史数据进行了逻辑回归,但直到下个月才会有新的观察结果.什么是最好的方法?

我考虑过的事情:

  • 保存模型对象并加载到新会话中
  • 我知道有些模型可以用PMML导出,但还没有真正看到有关导入PMML的信息

简单地说,我试图了解当您需要在新会话中使用模型时所执行的操作.

提前致谢.

r models

77
推荐指数
2
解决办法
5万
查看次数

Rails 4:在子路径中组织rails模型而不使用命名空间模型?

有没有可能有这样的东西?

app/models/
app/models/users/user.rb
app/models/users/education.rb
Run Code Online (Sandbox Code Playgroud)

目标是更好地组织/ app/models文件夹,但不必命名模型.

Rails 3的一个悬而未决的问题是: Rails 3.2.9和子文件夹中的模型.

使用命名空间指定table_name似乎可行(请参阅Rails 4模型子文件夹),但我想在没有命名空间的情况下执行此操作.

namespaces ruby-on-rails models subdirectory ruby-on-rails-4

74
推荐指数
1
解决办法
2万
查看次数

创建如果不存在

我有一个Django应用程序,它从Web API读取数据并将其放入数据库中.
有没有办法从模式创建新对象,但如果对象已存在,则防止重复异常?

换句话说,有没有办法保存一个对象,但只要它已经存在就什么都不做?

django models

71
推荐指数
3
解决办法
4万
查看次数

在Rails模型中使用多个PostgreSQL模式

我的Rails应用程序有一个PostgreSQL数据库.在名为"public"的模式中,存储了主Rails模型表等.我创建了一个"discogs"模式,其中的表名称有时与"public"模式中的名称相同 - 这是其中一个原因.我正在使用模式来组织这个.

如何从我的应用程序中的"discogs"架构设置模型?我将使用太阳黑子让Solr为这些模型编制索引.我不确定你会怎么做.

postgresql ruby-on-rails schema-design models database-schema

64
推荐指数
6
解决办法
2万
查看次数

如何在Django中获取登录用户的用户名?

如何在Django应用程序中获取有关登录用户的信息?

例如:

我需要知道登录用户的用户名,说明谁发布了评论:

<form id='formulario' method='POST' action=''>
    <h2>Publica tu tuit, {{ usuario.username.title }} </h2>
    {% csrf_token %}
    {{formulario.as_p}}
    <p><input type='submit' value='Confirmar' /></p>
</form>
Run Code Online (Sandbox Code Playgroud)

usuario.username.title我获取用户名时,但在模板中,我需要从视图中获取该信息.

谢谢.=)

python django django-templates models django-views

52
推荐指数
5
解决办法
10万
查看次数

未找到类'App\Http\Controllers\DB',我也无法使用新模型

我有非常基本的问题.在L4中,下面的方法开箱即用,所以现在我迷路了.请帮忙.几天前,我开始了一个Laravel 5.0项目.我现在有新鲜,干净的安装.

问题1:当我尝试从数据库中获取任何内容时

$headquote = DB::table('quotation_texts')->find(176);
Run Code Online (Sandbox Code Playgroud)

我明白了:

Class 'App\Http\Controllers\DB' not found
Run Code Online (Sandbox Code Playgroud)

问题2:在克隆User.php模型之前,将类名更改为"Quotation".下面是放在App根文件夹中的文件Quotations.php的内容:

<?php namespace App;

 use Illuminate\Database\Eloquent\Model;

 class Quotation extends Model  {

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'quotation_texts';
}
Run Code Online (Sandbox Code Playgroud)

任何尝试使用该模型

$headquote = Quotation::find(176);
Run Code Online (Sandbox Code Playgroud)

最终得到这个:

Class 'App\Http\Controllers\Quotation' not found
Run Code Online (Sandbox Code Playgroud)

我有什么想法可以解决这个问题?

php namespaces models laravel laravel-5

51
推荐指数
3
解决办法
14万
查看次数

Django:在.get()检索的单个模型实例上调用.update()?

我有一个当前调用的函数Models.object.get(),它返回0或1个模型对象.如果它返回0,我except DoesNotExist在函数的子句中创建一个新的模型实例.否则,我想更新预先存在的实例中的字段,而不创建新的字段.我原本试图调用.update()已找到的实例,但.update()似乎只能在QuerySets上调用.如何在不调用.filter()和比较长度的情况下更改十几个字段,以了解是否必须创建或更新预先存在的实例?

python django models

50
推荐指数
6
解决办法
10万
查看次数

Django可以自动创建一个相关的一对一模型吗?

我在不同的应用程序中有两个模型:modelA和modelB.他们有一对一的关系.有没有办法在保存modelA时django可以自动创建和保存ModelB?

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)
Run Code Online (Sandbox Code Playgroud)

当我保存一个新的ModelA时,我希望它的一个条目能够自动保存在ModelB中.我怎样才能做到这一点?有没有办法在ModelA中指定它?或者这是不可能的,我只需要在视图中创建和保存ModelB?

编辑说这些模型在不同的应用程序中.

django django-models models

44
推荐指数
6
解决办法
2万
查看次数

在适合任何地方的Rails应用程序中放置类的指南

我想知道是否有任何关于在Rails应用程序中放置非标准Ruby文件的最佳实践,哪些不适合任何默认目录(controllers/ models等).

我说的是控制器/模型等使用的类,但不是任何Rails基类的子类.包含从模型中提取的功能的类,以减少它们的负担.其中一些看起来像模型,但不是AR模型,其中一些看起来更像"服务",有些是介于两者之间或其他东西.

一些随机的例子:

  • 通过facebook等处理密码验证的"策略"类.
  • 封装params或"XCreator"对象的"XParams"对象处理params的处理以执行一些复杂的动作,最终导致创建一些AR模型
  • 向外部API发出请求或封装这些请求和响应的类
  • 可替代真实AR模型的假模型(例如访客用户)
  • Resque工作
  • 存储和读取Redis信息的类
  • 执行某些特定操作的类,如处理数据,生成报告等,并从Resque作业或rake任务调用

我现在已经有了很多这些,其中一些被添加到lib最后作为一堆随机类和模块,一些潜入app/models.我想以某种方式组织这个,但我不知道从哪里开始.

只应该进入AR车型app/models吗?或者也可以放置任何域或帮助模型?你如何决定某件事是模特?

如果不适合的一切都app进入lib?或许我应该添加一些新的自定义子目录app?什么子目录,以及如何划分自定义类?

你如何在你的项目中处理这个?我知道每个项目都有点不同,但必须有一些相似之处.

ruby directory ruby-on-rails organization models

42
推荐指数
2
解决办法
2万
查看次数