- 浏览: 28666 次
- 性别:
- 来自: 深圳
最新评论
-
Leonaking:
请问我不像替换所有的FileField呢?只替换其中的一个该怎 ...
django 1.2 使用自定义Widget实现在change_view页面中增加额外元素
文章列表
pycharm key
- 博客分类:
- python
EMBRACE
===== LICENSE BEGIN =====
14203-12042010
0000107Iq75C621P7X1SFnpJDivKnX
6zcwYOYaGK3euO3ehd1MiTT"2!Jny8
bff9VcTSJk7sRDLqKRVz1XGKbMqw3G
===== LICENSE END =====
儒释道净空老和尚讲经直播台(&1)
[M]
台北高清FLASH主机
http://www.amtb.tw/tvchannel/flowplayer/flowplayer-3.2.7.swf?config=http%3A//www.amtb.tw/tvchannel/flowplayer/tw1.js
香港高清FLASH主机
http://www.amtb.tw/tvchannel/flowplayer/flowplayer-3.2.7.swf?config=http%3A//www.amtb.tw/tvchannel/flowplayer/hk1.js
北京高清FLASH主机
http: ...
0 317 lock sleep NMSuser NMSuser (null) 218 MCDB tempdb SELECT 0
0 218 lock sleep NMSuser NMSuser (null) 317 MCDB tempdb INSERT 0
W ...
import win32com.client
app=win32com.client.DispatchEx("Excel.Application")
app.Visible=1
app.Workbooks.open(r'd:\\book1.xls')
wb=app.Workbook[0]
wb.VBProject.VBComponents(2).CodeModule.Lines(1, 3)
class FileModelAdmin(djopt.ModelAdmin):
formfield_overrides = {djmdl.FileField: {'widget': mywdg.FileWidgetWithExample({'file1':mym.People, 'file2':mym.Buy})}}
class FileWidgetWithExample(AdminFileWidget):
"""
A FileField Widget that shows its current value if it h ...
在显示一个Model的修改页面时,django会调用该Model对应的ModelAdmin对象的get_form()方法,该方法会动态生成一个ModelForm的子类,其base_fields字段存放的是{字段名:django.forms.fields.Field子类的实例}.
django.forms.fields.Field实例的生成过程:
get_form()方法在生成ModelForm的子类的过程中,会回调ModelAdmin的formfield_for_dbfield(),该方法中根据formfield_overrides字段指定的db.model.Field与Widget的对应关系 ...
最终实现效果
直接上代码:
新建模块widgets.py
from django.contrib.admin.widgets import AdminFileWidget
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext as _
class FileWidgetWithExample(AdminFileWidget):
"""
A FileField Widget that shows its cu ...
Model如下
class People(models.Model):
name = models.CharField(max_length = 200)
def __unicode__(self):
return force_unicode(self.name)
class Buy(models.Model):
from_people = models.ForeignKey(People, related_name = 'from_people')#related_name must be 'from_people'
to_pe ...
有如下Model
from django.db import models
from django.utils.encoding import force_unicode
# Create your models here.
class People(models.Model):
name = models.CharField(max_length = 200)
def __unicode__(self):
return force_unicode(self.name)
class Buy(models.Model):
fr ...
看django代码时发现了一个语句:db_field.__class__.mro(),查了下python的帮助没有发现有mro的说明。
写代码实验了一下,mro的功能是返回从object继承的类的继承树列表,如下:
>>> class test(object):
... pass
...
>>> o=test()
>>> o.__class__.mro
<built-in method mro of type object at 0x02704D70>
>>> o.__class__.mro()
[&l ...
>>> puname=ctypes.c_char_p("用户名")
>>> pdomain=ctypes.c_char_p("域名")
>>> lpszPassword=ctypes.c_char_p("")
>>> dwLogonType=ctypes.c_uint32()
>>> dwLogonProvider=ctypes.c_uint32()
>>> dwLogonType.value=3
>>> dwL ...
django 的models.ImageFiled,FileField有属性upload_to,该属性是指定将文件上传到服务器的位置,及存储在哪个文件夹下,你可以很方便甚至很少的代码就可以实现文件上传操作了。但是默认的存储的文件名是没有改变的,也就是说所存储的文件名就是你上传时文件的本地名,当服务器文件夹下有相同的文件名时,系统会自动添加下划线来改变文件名,以保证文件能顺利上传到服务器上。当是这样的文件名十分不美观,而且很多时候我们喜欢自己定义文件名,甚至动态控制文件保存的位置。这样看上去可能就不那么容易了。其他django其他的功能也为我们想好了这一点,并且很容易就可以实现你想要的操作。
1 ...