小编Dan*_*mes的帖子

过滤查询集中的空名称或NULL名称

我有first_name,last_name和别名(可选)我需要搜索.所以,我需要一个查询来给我所有具有别名集的名称.

只有我能做到:

Name.objects.filter(alias!="")
Run Code Online (Sandbox Code Playgroud)

那么,与上述相同的是什么?

django null filter django-models django-queryset

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

创建一个空的Pandas DataFrame,然后填充它?

我从这里的pandas DataFrame文档开始:http://pandas.pydata.org/pandas-docs/stable/dsintro.html

我想迭代地使用时间序列计算中的值填充DataFrame.基本上,我想用列A,B和时间戳行初始化DataFrame,全部为0或全部为NaN.

然后,我会添加初始值并检查此数据,计算前一行中的新行,row[A][t] = row[A][t-1]+1或者说左右.

我目前正在使用下面的代码,但我觉得它有点难看,必须有一种方法可以直接使用DataFrame,或者只是更好的方式.注意:我使用的是Python 2.7.

import datetime as dt
import pandas as pd
import scipy as s

if __name__ == '__main__':
    base = dt.datetime.today().date()
    dates = [ base - dt.timedelta(days=x) for x in range(0,10) ]
    dates.sort()

    valdict = {}
    symbols = ['A','B', 'C']
    for symb in symbols:
        valdict[symb] = pd.Series( s.zeros( len(dates)), dates )

    for thedate in dates:
        if thedate > dates[0]:
            for symb in valdict:
                valdict[symb][thedate] = 1+valdict[symb][thedate - dt.timedelta(days=1)]

    print valdict
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

381
推荐指数
4
解决办法
105万
查看次数

Django从ManyToMany关系中删除对象

如何在不删除实际对象的情况下从多对多关系中删除对象?

例:

我有模特MoodsInterest.

Mood有一个多对多的字段interests(这是一个models.ManyToManyField(Interest)).

我创建了一个Moods被调用的实例my_mood.在my_moods我的兴趣领域,我my_interest有意义

>>> my_mood.interests.all()
[my_interest, ...]
Run Code Online (Sandbox Code Playgroud)

如何my_interestmy_mood不删除任何模型实例的情况下删除?换句话说,如何在不影响相关模型的情况下删除关系?

django many-to-many

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

没有循环导入的Python类型提示

我想把我的大班分成两部分; 好吧,基本上进入"主"类和具有附加功能的mixin,如下所示:

import mymixin.py

class Main(object, MyMixin):
    def func1(self, xxx):
        ...
Run Code Online (Sandbox Code Playgroud)

现在,虽然这很好用,但MyMixin.func2中的类型提示当然无法正常工作.我无法导入main.py,因为我得到一个循环导入而没有提示,我的编辑器(PyCharm)无法分辨出什么main.py是.

使用Python 3.4,如果有可用的解决方案,愿意转向3.5.

有没有什么办法可以将我的课分成两个文件并保留所有的"连接",以便我的IDE仍然提供自动完成功能以及知道类型的所有其他好东西?

python type-hinting pycharm python-3.4 python-3.5

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

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

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

python django models

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

您将如何创建“手动”django 迁移?

我发现我可以在 django 项目中使用migrations.RunSQL('some sql').

我目前正在通过添加一个列,makemigrations,然后删除该列,makemigrations,然后手动修改生成的迁移文件来执行此操作。

我尝试复制一个旧的迁移文件,然后删除旧代码,这样就可以运行新的 sql 并出现一些奇怪的错误。

CommandError: Conflicting migrations detected; multiple leaf nodes in the migration graph: (0067_auto_20180509_2327, 0068_auto_20180514_0707 in csmu).
To fix them run python manage.py makemigrations --merge
Run Code Online (Sandbox Code Playgroud)

您将如何创建“手动”django 迁移?

django

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

django过滤器比天更早?

日期是用户输入的数字,以获得比(用户输入的天数)更早的结果,例如,如果用户32天将获得超过30天的结果.

class Entry(models.Model):
    entered = models.DateTimeField()

>>> from datetime import datetime
>>> Entry(entered = datetime.now()).save()
>>> Entry.objects.filter(entered__lte = datetime.now())
[<Entry: Entry object>]
>>> Entry.objects.filter(entered__gte = datetime.now())
[]
>>> Entry.objects.filter(entered__gte = datetime.now(), entered__lte=datetime(2009,11,1,0,0))
[<Entry: Entry object>]
Run Code Online (Sandbox Code Playgroud)

我的问题和我的尝试

xxxx__day__lte.
Run Code Online (Sandbox Code Playgroud)

来自输入字段的last_contact_filled输入

for day_filter in xrange(1,int(last_contact_filled)+1):
                qdict['last_contact__day']=day_filter
Run Code Online (Sandbox Code Playgroud)

在Django中最好的方法是什么?在我的情况下按天过滤?

django

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

Django:扩展User时,最好使用OneToOneField(User)或ForeignKey(User,unique = True)?

我正在通过扩展Django User模型找到有关是否使用OneToOneField(User)ForeignKey(User, unique=True)创建UserProfile模型的相互矛盾的信息.

使用它更好吗?:

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
Run Code Online (Sandbox Code Playgroud)

或这个?:

class UserProfile(models.Model):
    user = models.OneToOneField(User)
Run Code Online (Sandbox Code Playgroud)

Django的文件规定OneToOneField,而Django的书例子使用ForeignKey.

詹姆斯贝内特也有两篇博客文章,也提供了相互矛盾的例子:

在前一篇文章中,Bennett提供了一些原因,为什么他转而使用ForeignKey而不是OneToOneField,但我不太明白,特别是当我看到推荐相反的其他帖子时.

我很想知道你的偏好和原因.或者,它甚至重要吗?

django django-models django-profiles django-users

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

Django从一个查询集中排除另一个查询集

我有以下两种型号:

class DeliveryTime(models.Model):
   delivery_time = models.CharField(max_length=15)

class BlockedDeliveryTime(models.Model):
   delivery_date = models.DateField()
   delivery_time = models.ForeignKey(DeliveryTime) 
Run Code Online (Sandbox Code Playgroud)

我想返回一天所有可用的交货时间,即所有交货时间DeliveryTime除外BlockedDeliveryTime.

 blocked_delivery_times = BlockedDeliveryTime.objects.filter(delivery_date=delivery_date)
 delivery_times = DeliveryTime.objects.all()
Run Code Online (Sandbox Code Playgroud)

delivery_timesqueryset我想删除所有blocked_delivery_times.delivery_time

我怎样才能做到这一点?有什么建议?

django django-queryset

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

如何聚合(最小/最大等)Django JSONField数据?

我正在使用django 1.9及其内置的JSONField和postgres 9.4.在我的模型的JSONFieldjson字段中,我使用一些值存储对象,包括数字.我需要聚合它们来找到最小/最大值.像这样的东西:

Model.objects.aggregate(min=Min('attrs__my_key'))
Run Code Online (Sandbox Code Playgroud)

提取特定密钥也很有用:

Model.objects.values_list('attrs__my_key', flat=True)
Run Code Online (Sandbox Code Playgroud)

上述查询失败attrs:"无法将关键字'my_key'解析为字段.不允许加入'attrs'."

有可能吗?

注意:1)我知道如何进行简单的postgres查询来完成这项工作,所以我专门搜索ORM解决方案,以便能够过滤等.2)我想这可以用(相对)新的查询表达式/查找api完成但是我还没有研究过它.

django orm json

26
推荐指数
4
解决办法
5965
查看次数