我试图在Django视图中获取ImageField绝对路径,这样我就可以打开图像,在上面写一些东西,然后将其提供给用户.
我在获取保存在媒体文件夹中的图像的绝对路径时遇到问题.
item = get_object_or_404(Item, pk=pk)
absolute_url = settings.MEDIA_ROOT + str(item.image.path)
Run Code Online (Sandbox Code Playgroud)
我得到错误,item.image没有path(The 'banner' attribute has no file associated with it.).item.image是ImageField,我想知道如何获取图像字段中保存的图像的绝对路径(在Django视图中).
我试图在Django(python)中一次更新特定顺序的所有对象的位置字段.
这就是我现在的做法,但问题在于它会产生大量查询.
servers = frontend_models.Server.objects.all().order_by('-vote_count')
i = 1
for server in servers:
server.last_rank = i
server.save()
i += 1
Run Code Online (Sandbox Code Playgroud)
有没有办法更新
Model.objects.all().order_by('some_field').update(position=some_number_that_changes_for each_object)
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有以下问题.
我有3个型号:
class Deal(models.Model):
name = models.CharField(max_length=80)
class Site(models.Model):
name = models.CharField(max_length=80)
deal = models.ForeignKey(Deal)
class Picture(models.Model):
title = models.CharField(max_length=80)
deal = models.ForeignKey(Deal)
site = models.ForeignKey(Site)
Run Code Online (Sandbox Code Playgroud)
我想使用网站和图片内联管理模型进行交易管理:
class SiteInline(admin.StackedInline):
model = Site
extra = 1
class PictureInline(admin.StackedInline):
model = Picture
extra = 1
class DealAdmin(admin.ModelAdmin):
inlines = [
SiteInline,
PictureInline,
]
Run Code Online (Sandbox Code Playgroud)
我想要做的是当我选择Site in Picture admin时它只显示我属于我正在查看的当前交易的网站(如果我正在更新 - 不创建新的).
我希望这个在管理员工作,我花了很多时间搜索网页,但找不到任何有用的东西,请帮忙!
我试图这样做,但我不知道如何访问父模型实例来获取交易ID:
def formfield_for_foreignkey(self, db_field, request=None, **kwargs):
if db_field.name == 'site':
kwargs['queryset'] = Site.objects.filter(deal__id=1)
return super(PictureInline, self).formfield_for_foreignkey(db_field, request=None, **kwargs)
Run Code Online (Sandbox Code Playgroud)