请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

xadmin 修改课程信息,已有图片,还要求上传图片 才能提交

我看到老师的视频中修改了是否经典,并没有提示还需要上传封面。但是我的需要上传封面才可以提交,事实上,之前添加课程信息的时候已经有课程封面,预览也能看到信息。请问这个需要修改models定义 还是怎么解决这个问题呢?
图片描述

正在回答 回答被采纳积分+3

2回答

提问者 Hi_Mike 2020-07-30 17:01:12

此 问题还没有新的更新啊。。。。。

1 回复 有任何疑惑可以回复我~
  • bobby #1
    你的xadmin是否是我的xadmin源码 我给的源码中解决过这个问题 官方的xadmin中pull request也有人解决过这个问题 只是官方没有合并 你可以找一下按照里面的代码修改就行了
    回复 有任何疑惑可以回复我~ 2020-07-30 18:29:45
提问者 Hi_Mike 2020-08-15 14:15:53

经过一下午的调试,我找到问题所在,调试过程参考admin代码
修改xadmin/plugins/images.py,在AdminImageWidget类的最后添加:

def use_required_attribute(self, initial):
   return super(AdminImageWidget, self).use_required_attribute(initial) and not initial

最终如下:

class AdminImageWidget(forms.FileInput):
     """
     A ImageField Widget that shows its current value if it has one.
      """
   def __init__(self, attrs={}):
       super(AdminImageWidget, self).__init__(attrs)

   def render(self, name, value, attrs=None):
       output = []
       if value and hasattr(value, "url"):
           label = self.attrs.get('label', name)
           output.append('<a href="%s" target="_blank" title="%s" data-gallery="gallery"><img src="%s" class="field_img"/></a><br/>%s ' %
                        (value.url, label, value.url, _('Change:')))
       output.append(super(AdminImageWidget, self).render(name, value, attrs))
       return mark_safe(u''.join(output))

   def use_required_attribute(self, initial):
       return super(AdminImageWidget, self).use_required_attribute(initial) and not initial

有无其他影响还未知。待深入测试。


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信