今天首席CTO笔记来给各位分享关于django用什么实现动态部分的相关内容,其中也会对django动态刷新进行详细介绍,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、django中怎么动态操作数据库字段?2、我是怎么做到使用django动态定义表单的3、请教朋友们,django如何动态改变ImageField,FileField的uploaddjango中怎么动态操作数据库字段?
django的ORM系统不支持修改删除字段的操作,也就是说你在写模型model文件的时候,比如说定义了这个user表,然后包含字段telphone定义,你一旦执行了manage.py syncdb 这个操作,就把表结构往数据库写死了,如果你之是删除了model文件的telphone,数据库是不被重新修改的。这个时候必须用原生SQL解决,也就是说自己写SQL语句让django执行,这样的话会出很多问题,也就是说你执行了alter table users drop column telphone之后,你的model文件不知道你已经对users表结构做了修改,这样会出直接导致django应用的崩溃。所以动态字段不好做。也可能是我才疏学浅,没太理解,也许有高人能做到。不过面对ORM这样的尽量别删除字段。
我是怎么做到使用django动态定义表单的
有两种方法。 一、自己手动写 html 模板中的 在views 中,将所需要的数据传递过去,比如 names_list = [1, 2, 3, 4] 在 html 中 {% for x in name_list %} {{ x }} {% endfor %} 二、使用 Form 自动生成表单 这就需要在 views 中 动态初始化表单.
请教朋友们,django如何动态改变ImageField,FileField的upload
upload_to配置
可以指定一个固定的路径,upload_to=' app-name'
可以指定一个strftime()格式化标签,Django会自动处理成指定格式的日期字符串,如:
file = models.FileField(upload_to="photos/%Y/%m/%d")
则文件存储的时候,会在photos文件夹下,再建立一个文件夹,以年月日命名。
可以指定一个函数,动态生成存放路径,方法如下,
class TrainingAttachment(models.Model):
def upload_to(instance, filename):
return '/'.join(['training', instance.subject.name, filename])
subject = models.ForeignKey(TrainingSubject)
file = models.FileField(upload_to=upload_to)
file_name = models.CharField(max_length=255, default='Attachment')
上面代码实现了附件存放到以TrainingSubject.name为目录的路径下。
可以在上传文件的views处理函数内指定upload_to存放地址
重载通用视图的form_valid方法,重新指定Model的FileField字段的upload_to路径:
def form_valid(self, form):
# 重新指定存放路径
Attachment._meta.get_field('file').upload_to = 'training/'+self.kwargs['subject_pk']
return super(AttachmentCreateView, self).form_valid(form)
结语:以上就是首席CTO笔记为大家介绍的关于django用什么实现动态部分和django动态刷新的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。