0

我正在尝试使用 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不能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'
    )

那么仅通过在相关文件夹上上传照片来更新照片字段的最佳方法是什么,因为我无法每次都更新所有字段

4

1 回答 1

0

尝试这个:

p1 = MerchantProfile.objects.filter(id=cd['id'])
if cd['photo']:
   p1.photo=cd['photo']
else:
   p1.photo=cd['uploaded_photo']
p1.save()
于 2012-08-01T08:19:34.743 回答