2012-08-01 25 views
0

我试图使用Django ORM更新像场只有IE浏览器的用户将在稍后添加图像,将在主表更新在Django与像场

我试图更新

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' 
    ) 

那么什么是只更新照片领域的最佳途径与相关文件夹上传照片,因为我无法每次更新所有字段

回答

0

试试这个:

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

不,它不工作 – hangman 2012-08-01 08:40:37

+0

@JoelleTillman我希望cd ['photo'](和其他)是文件包装或类似的对象。 – Rohan 2012-08-01 08:47:09

+0

@JoelleTillman什么不与这个工作? – 2012-08-01 08:58:58