我在 django 学习 CBV。我希望用户可以将图像上传到公寓的某个卡片。所以创建了模型:
class Photo(models.Model):
photo_path = models.ImageField(verbose_name='Фотография')
photo_user = models.ForeignKey(User, verbose_name='Агент, добавивший фото')
photo_flat = models.ForeignKey(Flat, verbose_name='Квартира')
photo_description = models.CharField(verbose_name='Описание', max_length=200, null=True, blank=True)
表单的初始数据是 photo_user 和 photo_flat。当我尝试通过我拥有的页面上的表单保存一张或多张图片时AttributeError
。
'NoneType' object has no attribute 'pk'
我的 ModelForm 看起来像这样:
class PhotoUploadModelForm(forms.ModelForm):
class Meta:
model = Photo
fields = ['photo_path','photo_user','photo_flat','photo_description'
我的创建视图:
class PhotoUploadView(CreateView):
form_class = PhotoUploadModelForm
def get_initial(self):
return {'photo_user': self.request.user,
'photo_flat': self.object.pk
}
def get_success_url(self):
return reverse('ha:flatdetail')
和我的 urls.py
url(r'^dev/flat/(?P<flat_id>[0-9]+)/$', views_dev.flat_ajax, name='flatdetail'),
url(r'^dev/photo-update/$', views_dev.PhotoUploadView.as_view(), name='image-update')
我理解错误,但没有足够的技能来处理它。我是否更正 self.object.pk 将是图片的 id 而不是公寓的 id?我可以得到公寓的id吗?