Aam*_*amu 12 django django-models django-orm django-views
请看看这些型号:
class Album(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=200)
pub_date = models.DateTimeField(default=datetime.now)
class Photo(models.Model):
album = models.ForeignKey(Album, default=3)
image = models.ImageField(upload_to=get_upload_file_name)
caption = models.CharField(max_length=200)
pub_date = models.DateTimeField(default=datetime.now)
Run Code Online (Sandbox Code Playgroud)
如何获取特定相册的照片集??? 以及如何从照片实例本身获取相册?
我试过这个:
# To get the set of photos from the user (tika) album:
>>>t = User.objects.get(username='tika')
>>>t_album = Album.objects.get(user=t)
>>>t_album
<Album: tika_album>
>>>t_album.image_set.all()
AttributeError: 'Album' Object has no attribute 'image_set'
Run Code Online (Sandbox Code Playgroud)
请指导我正确的方向.谢谢.
kar*_*ikr 17
你快到了.你应该用photo_set而不是image_set
>>>t_album.photo_set.all()
Run Code Online (Sandbox Code Playgroud)
即小写的modelname _set
如果你想要1个查询中的照片列表,
photos = Photo.objects.filter(album__user__username='tika')
Run Code Online (Sandbox Code Playgroud)
Ste*_*e K 15
更好的是,你可以写 Photo
album = models.ForeignKey(Album, related_name='photos', default=3)
Run Code Online (Sandbox Code Playgroud)
该photos会是相反的字段的名称来自Album于Photo.如果未定义,则将命名反向字段photo_set.
然后你用
t_album.photos.all() # only if you've defined the `related_name` argument to 'photos'
Run Code Online (Sandbox Code Playgroud)
要么
t_album.photo_set.all()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15687 次 |
| 最近记录: |