0
我正在为多个图像上传写一个自定义小部件。我的模型是:Django自定义小部件,从另一个表填充(类似于内联)
models.py
class Room(models.Model):
....
....
class Picture (models.Model):
room = models.ForeignKey(Room)
url=models.ImageField(upload_to='slider', height_field=None, width_field=None, max_length=100)
def __unicode__(self):
return str(self.url)
我想创建自定义窗口小部件,允许在房间中显示多个图像上传表单
这是我试过到目前为止:
forms.py
class MultyImageWidget(forms.Widget):
....
def render(self, name, value, attrs=None):
context = {
'images': Picture.objects.filter(room = *room_id_of_currently_edited_room*)
# OR
# Any another way to get set of images from pictures table
}
return mark_safe(render_to_string(self.template_name, context))
class RoomsForm(forms.ModelForm):
gallery = forms.ImageField(widget=MultyImageWidget, required=False)
class Meta:
model = Room
fields = '__all__'
所以问题是,我没有房间模型中的画廊字段,但我想使用小部件来管理存储在图片表中的图片,类似于如何通过内联管理数据。
如何从我的小部件获取当前正在编辑的房间的ID? 或者有没有其他的方式来获取相关图片?
谢谢
嘿Karolis,非常感谢,这正是我需要的。忘记说,我使用django 1.7并以管理员身份使用这个小部件。这很好,欢呼 – Nebojsha 2015-04-03 07:49:39