【问题标题】:update in django with image field使用图像字段在 django 中更新
【发布时间】:2012-08-01 07:49:03
【问题描述】:

我正在尝试使用 django orm 仅更新图像字段,即用户稍后将添加图像并将在主表中更新

我试过了

MerchantProfile.objects.filter(id='%s'%(cd['id'])).update(photo='%s'%(cd['photo']))

但它只会更新标题,而不是保存在文件夹中的图像

然后我尝试关注

p1=MerchantProfile()
p1.id=cd['id']
if cd['photo']:
       p1.photo=cd['photo']
else:
       p1.photo=cd['uploaded_photo']
p1.save()

它将保存图像,但会显示错误,例如 payment_card cannot be null

我的模型如下

class Merchantprofile:
   user = models.OneToOneField(UserProfile, related_name="merchant_profile")
   payment_card = models.OneToOneField(PaymentCard, related_name="merchant_profile")
   current_state = models.IntegerField('State', choices=STATE_CHOICES)
   name = models.CharField('Merchant Name', max_length=64)
   photo=models.ImageField(upload_to='logo',blank=True)

表格

class LogoForm(forms.Form):
     id = forms.CharField(widget=forms.HiddenInput,required=False)
     photo = forms.ImageField(
        required=False,
        label='Upload photo',
        initial=True,
        help_text='max. 4 megabytes'
    )

那么只有在相关文件夹上上传照片才能更新照片字段的最佳方法是什么,因为我不能每次都更新所有字段

【问题讨论】:

    标签: python django orm


    【解决方案1】:

    试试这个:

    p1 = MerchantProfile.objects.filter(id=cd['id'])
    if cd['photo']:
       p1.photo=cd['photo']
    else:
       p1.photo=cd['uploaded_photo']
    p1.save()
    

    【讨论】:

    • @JoelleTillman 我希望 cd['photo'] (和其他)是文件包装器或类似对象。
    • 它说'QuerySet'对象没有属性'save'
    • @JoelleTillman cd['photo'] 似乎不是 django 文件类型对象。它不是取自 request.FILES 吗?您只能将文件对象保存在_imagefield中。
    猜你喜欢
    • 2016-06-03
    • 1970-01-01
    • 2016-02-18
    • 2020-03-06
    • 2020-01-02
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多