我没有收到任何错误。 好的谁看到了这个错误?因为我没有。这是我的代码:
Views.py:
class UpdateFeaturete(generic.UpdateView):
template_name = 'images/updatefeaturete.html'
model = FeatureteImage
fields = ['header', 'body', 'image']
def get_object(self):
return get_object_or_404(FeatureteImage, pk=self.kwargs['f_pk'])
def form_valid(self, form):
return super(UpdateFeaturete, self).form_valid(form)
models.py:
class FeatureteImage(models.Model):
park = models.ForeignKey(Park)
header = models.CharField(max_length=50, blank=True)
body = models.TextField(max_length=250, blank=True)
image = models.ImageField(upload_to='featureteimages')
def save(self, *args, **kwargs):
park = Park.objects.get(id=self.venue.id)
if park.featurete >= 3:
pass
else:
park.featurete += 1
park.save()
super(FeatureteImage, self).save(*args, **kwargs)
def get_absolute_url(self):
return reverse('park-features', kwargs={'pk': self.park.pk,})
我的模板:
<form method="post" action="" enctype="multipart/form-data">
{% csrf_token %}
<div class="form-group">
{{ form|crispy }}
</div>
<input type="submit" value="Save Changes." class="btn btn-primary" />
</form>
一切似乎都运转正常。除了ImageField之外,所有字段似乎都会更新。 提前谢谢!
答案 0 :(得分:2)
好的,所以你需要的不是保存方法,你需要覆盖清理方法:
def clean(self):
park = Park.objects.get(id=self.venue.id)
if park.featurete >= 3:
raise ValidationError('error message goes here')
答案 1 :(得分:2)
代码中的函数get_absolute_url()
存在重复错误。我刚刚测试了你的代码,它工作得很好甚至图像上传。请在其他部分找到原因。
您可以编辑帖子并添加settings.py
的代码。