标签: django-models

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

Django模型中字段的默认值

假设我有一个模型:

class SomeModel(models.Model):
    id = models.AutoField(primary_key=True)
    a = models.CharField(max_length=10)
    b = models.CharField(max_length=7)
Run Code Online (Sandbox Code Playgroud)

目前我使用默认管理员来创建/编辑此类型的对象.如何b从管理员中删除该字段,以便无法使用值创建每个对象,而是将接收默认值0000000

python django django-models django-admin

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

如何将Django模型字段的默认值设置为函数调用/可调用(例如,相对于模型对象创建时间的日期)

编辑:

如何将Django字段的默认设置为每次创建新模型对象时评估的函数?

我想做类似下面的事情,除了在这段代码中,代码被评估一次并将默认设置为创建的每个模型对象的相同日期,而不是每次创建模型对象时评估代码:

from datetime import datetime, timedelta
class MyModel(models.Model):
  # default to 1 day from now
  my_date = models.DateTimeField(default=datetime.now() + timedelta(days=1))
Run Code Online (Sandbox Code Playgroud)



原版的:

我想为函数参数创建一个默认值,使其成为动态的,并在每次调用函数时调用和设置.我怎样才能做到这一点?例如,

from datetime import datetime
def mydate(date=datetime.now()):
  print date

mydate() 
mydate() # prints the same thing as the previous call; but I want it to be a newer value
Run Code Online (Sandbox Code Playgroud)

具体来说,我想在Django中这样做,例如,

from datetime import datetime, timedelta
class MyModel(models.Model):
  # default to 1 day from now
  my_date = models.DateTimeField(default=datetime.now() + timedelta(days=1))
Run Code Online (Sandbox Code Playgroud)

django parameters lambda default django-models

88
推荐指数
4
解决办法
6万
查看次数

在django查询中等效的SQL"LIKE"

django中这个SQL语句的等价物是什么?

SELECT * FROM table_name WHERE string LIKE pattern;
Run Code Online (Sandbox Code Playgroud)

我如何在django中实现这个?我试过了

result = table.objects.filter( pattern in string )
Run Code Online (Sandbox Code Playgroud)

但那没用.我该如何实现?

python sql django django-models django-queryset

88
推荐指数
4
解决办法
7万
查看次数

Django中从一个app到另一个app的外键

我想知道是否可以在Django中的models.py文件中定义一个外键,它是对另一个应用程序中的表的引用?

换句话说,我有两个应用程序,称为cf和profiles,在cf/models.py中我有(除其他外):

class Movie(models.Model):
    title = models.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)

在profiles/models.py中我希望:

class MovieProperty(models.Model):
    movie = models.ForeignKey(Movie)
Run Code Online (Sandbox Code Playgroud)

但我无法让它发挥作用.我试过了:

    movie = models.ForeignKey(cf.Movie)
Run Code Online (Sandbox Code Playgroud)

我尝试在models.py的开头导入cf.Movie,但我总是遇到错误,例如:

NameError: name 'User' is not defined
Run Code Online (Sandbox Code Playgroud)

我是否通过尝试以这种方式将两个应用程序绑定在一起来打破规则,或者我的语法错误?

python django django-models

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

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

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

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

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

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

python django django-models models

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

Django - 过滤外键属性

我正在尝试根据外键的特定字段的值过滤Django中的表.

例如,我有两个模型 -

class Asset(models.Model):
    name = models.TextField(max_length=150)
    project = models.ForeignKey('Project')

class Project(models.Model):
    name = models.TextField(max_length=150)
Run Code Online (Sandbox Code Playgroud)

我想根据相关项目的名称过滤我的资产清单.

目前我正在执行两个查询:

project_list = Project.objects.filter(name__contains="Foo")
asset_list = Asset.objects.filter(desc__contains=filter,
                                  project__in=project_list).order_by('desc')
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法在主查询中指定这种过滤方式?

django django-models django-queryset

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

联系Django Admin的模型历史

设置:

  • 我正在开发一个Django应用程序,它允许用户在数据库中创建一个对象,然后返回并根据需要进行编辑.
  • Django的管理站点保存了通过管理站点对对象所做更改的历史记录.

问题:

  • 如何将我的应用程序挂钩到管理站点的更改历史记录中,以便我可以看到用户对其"内容"所做的更改历史记录?

django django-models django-admin

85
推荐指数
4
解决办法
5万
查看次数

django syncdb和更新的模型

我最近更新了我的模型,为它添加了一个BooleanField,但是当我这样做时python manage.py syncdb,它不会将新字段添加到模型的数据库中.我怎样才能解决这个问题 ?

python django django-models

85
推荐指数
4
解决办法
5万
查看次数

Django数据库查询:如何通过id获取对象?

Django自动创建一个id字段作为主键.

现在我需要通过此id获取对象.

object = Class.objects.filter() 
Run Code Online (Sandbox Code Playgroud)

怎么写这个过滤器?

django django-models django-orm

85
推荐指数
3
解决办法
10万
查看次数