我有first_name,last_name和别名(可选)我需要搜索.所以,我需要一个查询来给我所有具有别名集的名称.
只有我能做到:
Name.objects.filter(alias!="")
Run Code Online (Sandbox Code Playgroud)
那么,与上述相同的是什么?
我从这里的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) 如何在不删除实际对象的情况下从多对多关系中删除对象?
例:
我有模特Moods
和Interest
.
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_interest
在my_mood
不删除任何模型实例的情况下删除?换句话说,如何在不影响相关模型的情况下删除关系?
我想把我的大班分成两部分; 好吧,基本上进入"主"类和具有附加功能的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仍然提供自动完成功能以及知道类型的所有其他好东西?
我有一个当前调用的函数Models.object.get()
,它返回0或1个模型对象.如果它返回0,我except DoesNotExist
在函数的子句中创建一个新的模型实例.否则,我想更新预先存在的实例中的字段,而不创建新的字段.我原本试图调用.update()
已找到的实例,但.update()
似乎只能在QuerySets上调用.如何在不调用.filter()
和比较长度的情况下更改十几个字段,以了解是否必须创建或更新预先存在的实例?
我发现我可以在 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 迁移?
日期是用户输入的数字,以获得比(用户输入的天数)更早的结果,例如,如果用户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 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
,但我不太明白,特别是当我看到推荐相反的其他帖子时.
我很想知道你的偏好和原因.或者,它甚至重要吗?
我有以下两种型号:
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_times
queryset我想删除所有blocked_delivery_times.delivery_time
我怎样才能做到这一点?有什么建议?
我正在使用django 1.9及其内置的JSONField和postgres 9.4.在我的模型的JSONField
json字段中,我使用一些值存储对象,包括数字.我需要聚合它们来找到最小/最大值.像这样的东西:
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 ×8
python ×3
dataframe ×1
django-users ×1
filter ×1
json ×1
many-to-many ×1
models ×1
null ×1
orm ×1
pandas ×1
pycharm ×1
python-3.4 ×1
python-3.5 ×1
type-hinting ×1