问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

django的model模块怎么写(2023年最新分享)

发布网友 发布时间:2024-10-04 09:01

我来回答

1个回答

热心网友 时间:2024-10-05 10:56

导读:今天首席CTO笔记来给各位分享关于django的model模块怎么写的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

自己写的python程序怎么使用的django的models

在一个爬虫脚本中将爬取的数据通过django自带的model保存到数据库

修改的文件(其余pycharm新建Django项目生成,未修改):

#testapp/models.pyfromdjango.dbimportmodelsclassProblem(models.Model):title=models.CharField(max_length=100,default="")author=models.CharField(max_length=100,default="")

def__str__(self):returnself.titlepass

#testapp/spider.pyimportosimportsysimportdjangopathname=os.path.dirname(os.path.abspath(__file__))sys.path.insert(0,pathname)sys.path.insert(0,os.path.abspath(os.path.join(pathname,'..')))os.environ.setdefault("DJANGO_SETTINGS_MODULE","testproject.settings")django.setup()fromtestapp.modelsimportProblemif__name__=="__main__":p=Problem(title="hi",author="hi")p.save()pass

#testproject/setting.py......INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',#添加应用'testapp',]......

#testapp/admin.py在后台管理界面注册Problemfromdjango.contribimportadmin#Registeryourmodelshere.fromtestapp.modelsimportProblemadmin.site.register(Problem)

Djangomodel遇到查询条件组合比较多的情况下怎么写

没有用过djongo,但是我想应该都是差不多的,这类orm的filter或者where方法返回的都是一个query对象,所以应该是可以连续使用filter的。

比如你前面写了a=search.objects.filter(xxx),然后你想再加一个条件,就继续a.filter(yy)就好。

djangomodelchoicefield页面怎么写

1.这是行不通的。看一看这ModelChoiceField工作原理:

try:

key=self.to_field_nameor'pk'

value=self.queryset.get(**{key:value})

exceptself.queryset.model.DoesNotExist:

raiseValidationError(self.error_messages['invalid_choice'])

returnvalue

你不能随意添加到它。使用ChoiceField代替和定制处理数据。

classTestForm(forms.Form):

mychoicefield=forms.ChoiceField(choices=QS_CHOICES)

def__init__(self,*args,**kwargs):

super(TestForm,self).__init__(*args,**kwargs)

self.fields['mychoicefield'].choices=\

list(self.fields['mychoicefield'].choices)+[('newstuff','new')]

defclean_mychoicefield(self):

data=self.cleaned_data.get('mychoicefield')

ifdatainQS_CHOICES:

try:

data=MyModel.objects.get(id=data)

exceptMyModel.DoesNotExist:

raiseforms.ValidationError('foo')

returndata

2.看来,你只是想使这些表单字段是可选的。不要让坚硬的自己。请参阅有关的规定标志着一个表单域。

lead=forms.ModelChoiceField(queryset=People.objects.filter(poc__in=('lead','sr.lead')),required=False)

3.你有PKPerson对象'无'?我想你应该

self.fields['lead']=forms.ModelChoiceField(queryset=Pepole.objects.filter(poc__in=('lead','sr.lead')),empty_label="None")

self.fields['lead2']=forms.ModelChoiceField(queryset=Pepole.objects.filter(role__in=('lead','sr.lead')),empty_label="None")

编辑:既然你一个modelchoicefield,我认为所有的选择将是要么机型或者不选。通过修改传递给构造函数的modlechoicefield,如QuerySet的你可以“扩展”该类型的选择:

qs=People.objects.filter(poc__in=('lead','sr.lead'))

ext=People.objects.filter(role__in=('lead','sr.lead'))

qs=qs|ext

self.fields['lead']=forms.ModelChoiceField(queryset=qs,empty_label='None')

orforupdating

self.fields['lead'].queryset=qs

DjangoModel层的设计一般是怎么进行的

model是数据库的设置,看你需要存储那些数据,就设置那些表,然后加入相应的字段

#?Create?your?models?here.

class?user(models.Model):

????username?=?models.CharField(max_length=20,?default='')?#name属性,字段

????password?=?models.CharField(max_length=50,?default='')?#password属性,字段

????#此方法在print对象的时候,可以打印字符串,类似java中的toString()方法

????def?__str__(self):

????????return?self.username?+?self.password

django使用已有的数据库表怎么建立model

在网上看到都是使用Django的models和makemigration,migrate命令来创建新表,并使用。可是我的数据已经存在了已经创建好,并且已经存储有数据了,不能再重新创建新表了。了解Django的表明和models名称的映射关系就可以让Django使用已经存在的表。

假如在Django存在models如下:

[python]?viewplain?copy

from?django.db?import?models

#?Create?your?models?here.

class?Sciencenews(models.Model):

id?=?models.CharField(max_length=36,primary_key=True)

first_module?=?models.CharField(max_length=30,default="News")

second_module?=?models.CharField(max_length=30,default="Latest?News")

title?=?models.CharField(max_length=300)

author?=?models.CharField(max_length=60,null=True)

publish_date?=?models.CharField(max_length=35,null=True)

content?=?models.TextField(null=True)

crawl_date?=?models.CharField(max_length=35,null=True)

from_url?=?models.CharField(max_length=350,null=True)

执行数据迁移命令:

[python]?viewplain?copy

python?manage.py?makemigration

python?manage.py?migrate

会在数据库中生成名称为show_sciencenews的数据表。show为应用名称,此处我的应用名称为show。可以看到Django创建表的命名规则:应用名_模型名。

我的存储爬取到的数据的表格名称原来为science_news,想要Django使用它,而不是创建新的表,只需要把的它的名称改为:应用名_要与该表映射的models名称,在此处我改为show_sciencenews。然后使用如上的数据迁移命令,这时可能会提示数据表已经存在的错误,不用理会,models已经和数据表映射上了。接下来只需要正常使用models和数据表就可以了。

django中template怎么使用model自定义的方法

djangomodel中使用多语言支持的快速方法,该方法通过建立自定义的templatetag选取model中重复的语言field来达到多语言显示的目的.

假设我们有这样一个models.py,某一个model中包含多个重复的field,每个重复的field都是用来保存其对应的显示语言:

classMyObject(models.Model):

name=models.CharField(max_length=50)

title_en=models.CharField(max_length=50)

title_es=models.CharField(max_length=100)

title_fr=models.CharField(max_length=100)

description_en=models.CharField(max_length=100)

description_es=models.CharField(max_length=100)

description_fr=models.CharField(max_length=100)

classMyOtherObject(models.Model):

name=models.CharField(max_length=50)

content_en=models.CharField(max_length=200)

content_es=models.CharField(max_length=200)

content_fr=models.CharField(max_length=200)

注意,我们将下划线和语言代码作为后缀放在对应的field后面,这将作为一个语言的查找标记.

然后我们在settings.py中添加需要翻译的field名:

TRANSLATION_FIELDS=('title','description','content')

在项目目录中添加templatetags目录(不要忘了怎家__init__.py),并在其中建立lazy_tags.py:

fromdjangoimporttemplate

fromsettingsimportTRANSLATION_FIELDS

register=template.Library()

classLocalizedContent(template.Node):

def__init__(self,model,language_code):

self.model=model

self.lang=language_code

defrender(self,context):

model=template.resolve_variable(self.model,context)

lang=template.resolve_variable(self.lang,context)

forfinTRANSLATION_FIELDS:

try:

setattr(model,f,getattr(model,'%s_%s'%(f,lang)))

exceptAttributeError:

pass

return''

@register.tag(name='get_localized_content')

defget_localized_content(parser,token):

bits=list(token.split_contents())

iflen(bits)!=3:

raisetemplate.TemplateSyntaxError("'get_localized_content'tagtakesexactly2arguments")

returnLocalizedContent(model=bits[1],language_code=bits[2])

为了在template中使用自定义的tag,我们首先载入:

{%loadlazy_tags%}

然后使用自定义tag,传入object和语言代码,取的翻译.比如西班牙语:

{%get_localized_contentobject'es'%}

此时,如果没有语言代码传入,那么无法使用obj.description调用某一个语言field.所以我们配合django.core.context_processors.request,contextprocessor一起使用:

TEMPLATE_CONTEXT_PROCESSORS=(

...

'django.core.context_processors.request',

)

我们就能在template中这样使用:

{%get_localized_contentobjectrequest.LANGUAGE_CODE%}

结语:以上就是首席CTO笔记为大家整理的关于django的model模块怎么写的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机垃圾清理使用哪个软件最好? 适合新手用的手机清理软件 苹果手机怎么把号码黑名单里? VUE视频相机使用教程 教你简单几步拍出大片 如何使用佳能相机录像 相机录像具体操作教程分享 羊头捣蒜做法图解 服刑期间领取养老金是否构成犯罪 狗狗胰腺炎最怕的三种蔬菜是什么 怎么喂食 银行卡给专业的贷款公司做流水有风险吗? 电话号可直接贷款吗,他知道我的实名电话,还用paos机刷了我的银行卡一... 影之诗手游异画卡是什么 异画卡获取途径详解 影之诗怎么获得异画 ThinkPHP CURDCURD分解 ...A+B—B+四个接线口,有的又只有AB两个接线口啊? 5月18日生日的明星中国有哪些 ...人民法院公开审判的刑事案件,应当先期公布下列哪些内容( ) (5.0... ...马某组织.领导黑社会性质组织案进行侦查,下列说法不合法的是?_百度... ...并办理了取保候审。关于本案的处理,下列哪一选项是正确的?_百度知 ... 我的电脑出现了打字母现数字,打数字现符号的情况,请问哪个懂电脑的人... 按数字变成了符号 本本电脑的键盘乱码是怎么回事? 步进电机驱动器方向控制时好时坏 石家庄第十中学乘车路线 iphone6plus语音信箱怎么关闭 怎样让孩子顺利渡过“开学恐惧症”期? 高中生家长如何助孩子克服“开学恐惧症” 什么是生物半衰期? ...我的程序为什么先输入一些% &¥这样的符号后,就不统计了 iphone4语音留言怎么开通? iphone4 怎么把来电转接到语音信箱呢 django如何获取模型修改时间(django修改数据) django如何存外键 道州交通状况 如何理解django中的模型(django模型数据类型) 我从衡阳到荆州,买了G1120次列车到武汉站,然后转车到荆州,又买了张D32... 趣谈网络协议栈,七层模型下三层数据通信 从荆州到衡阳怎么坐车最近呀? 衡阳到荆州沙市 有没有直到沙市的汽车站吗? 狗狗尿液像白水一样正常吗 狗狗之前小便都是浅黄色。今天小便跟清水一样 是怎么回事 是生病了吗... 请问潍坊金马怡园32号楼高层选择26楼好吗?一共27层楼顶带阁楼。 谁有动漫《妖狐X仆SS》这两张高清大图 求这组妖狐x仆ss原图 妖狐x仆ss tian脚图高清。就是这张 清楚一点 求《樱花庄的的宠物女孩》椎名真白的图片和《妖狐x仆ss》中白鬼... 道县到广东中山市具体路线 中山—道州有几公里 中山市从二厂高速到湖南嘉禾有多少公里 89级的人物到哪烧双 梦幻西游89级 109的人都在哪里组队啊 双那里怎么没有阿