suh*_*lvs 4 django django-models
我有两个models
:
class Organization(models.Model):
title = models.CharField(max_length=100)
class Folder(models.Model):
organization = models.ForeignKey("Organization",related_name='folders')
title = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)
现在我想过滤folder
by organization id
。所以我尝试了:
Folder.objects.filter(organization= 1)
Folder.objects.filter(organization_id= 1)
Folder.objects.filter(organization__id= 1)
Folder.objects.filter(organization__pk= 1)
Folder.objects.filter(organization= Organization.objects.get(id=1))
不管你相信与否,一切都会返回相同的结果。
那么有人知道通过外键字段的 id 进行查询的正确方法是什么吗?
但是当尝试通过以下方式创建时folder
:
Folder.objects.create(organization__id=1,title='hello')
Run Code Online (Sandbox Code Playgroud)
出现错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/suhail/.virtualenvs/heybadges/local/lib/python2.7/site-packages/django/db/models/manager.py", line 92, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/suhail/.virtualenvs/heybadges/local/lib/python2.7/site-packages/django/db/models/query.py", line 370, in create
obj = self.model(**kwargs)
File "/home/suhail/.virtualenvs/heybadges/local/lib/python2.7/site-packages/django/db/models/base.py", line 452, in __init__
raise TypeError("'%s' is an invalid keyword argument for this function" % list(kwargs)[0])
TypeError: 'organization__id' is an invalid keyword argument for this function
Run Code Online (Sandbox Code Playgroud)
但Folder.objects.create(organization_id=1,title='hello')
效果很好。
归档时间: |
|
查看次数: |
12574 次 |
最近记录: |