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 に答える