简介:许多朋友问有关如何在Django编写模型的问题。本文的首席CTO注释将为您提供一个详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!
本文目录清单:
1.如何在Django中使用Model的自定义方法的方法2.当有更多查询时,如何编写如何编写许多查询条件组合。Django使用现有的数据库表如何建立模型4,Django ModelChoiceField Page。如何使用模型自定义方法
使用TMUX的最佳方法是使用会话方式,以便您可以按照所需的方式将任务和应用程序组织为不同的会话。如果您想更改会话,则无需停止会话中的工作或杀死。让我们看一下这个工作。
让我们开始一个名为“会话”的会话,然后运行顶部命令
$ tmux new-s新会议
$ top
然后输入此会话的CTRL-B D。如果您想再次连接到此会话,则需要输入:
$ tmux附件-Session -t会话
之后,您将看到在重新连接的会话中仍在运行的顶部操作。
我没有使用过djongo,但我认为应该相似。过滤器或此类ORM的方法返回查询对象,因此应通过过滤器连续使用它。
例如,您写了a = search.objects.filter(xxx),然后要添加另一个条件以继续A.Filter(YY)。
在Internet上看到使用Django的模型和MAKEMIGRATION,迁移命令创建新表并使用它。但是我的数据已经存在,并且已经存储了,并且已经存储了数据,并且无法创建新表格。Django的指示和与模型名称的映射关系可以使Django使用现有表。
如果模型在Django中存在如下:
[python]查看普通副本
来自django.db导入模型
#在这里创建您的模型。
Sciencenews(Models.Model):
id = models.charfield(max_length = 36,primary_key = true)
first_module = model.charfield(max_length = 30,默认值=“ news”)
second_module = model.charfield(max_length = 30,默认值=“最新新闻”)
title = models.charfield(max_length = 300)
作者= models.charfield(max_length = 60,null = true)
publish_date = models.charfield(max_length = 35,null = true)
content = model.textfield(null = true)
crawl_date = model.charfield(max_length = 35,null = true)
from_url = models.charfield(max_length = 350,null = true)
执行数据迁移命令:
[python]查看普通副本
python manage.py makemign
python manage.py迁移
名为show_sciencenews的数据表将在数据库中生成。显示为应用程序名称。我的应用程序名称在此处显示。
我的存储和攀登数据数据的表名是Science_News,我想使用它来使用它而不是创建新表。其名称的名称更改为带有表格的模型的名称,在这里我更改为show_sciencenews。然后使用上述数据迁移命令。目前,可以提示数据表数据表已经存在错误。不合理的模型已使用数据表映射。接下来,您只需要正常使用模型和数据表即可。
1.这是不可能的。请看一下此ModelChoiceField的原理:
尝试:
key = seld.to_field_name或'pk'
value = self.queryset.get(** {key:value})
除了self.queryset.model.doesnotexist:
提高价值Error(self.error_messages ['invalid_choice'])
返回值
您不能在Will.Chope Field和自定义处理数据上添加它。
类Testform(forms.form):
mychoicefield = forms.choicefield(选择= qs_choices)
def __init __(self, *args,** kwargs):
super(testform,self).__ init __(*args,** kwargs)
self.fields ['mychoicefield']。选择=
列表(self.fields ['mychoicefield']。选择) + [('新东西','new')]]]]
def clean_mychoicefield(自我):
data = self.clenet_data.get('mychoicefield')
如果QS_CHOICES中的数据:
尝试:
data = mymodel.objects.get(id = data)
除了mymodel.doesnotexist:
提高表格。ValidationError('foo')
返回数据
2.看来您只想使这些表字段可选。不要让艰难的自我。请参阅标志着形式域的相关法规。
leds = forms.modelchoicefield(querySet = peical.objects.filter(poc__in =('lead','sr. -lead')),必需= false)
3.您是否有PK人对象,不,我认为您应该
self.fields ['lead'] = forms.modelchoicefield(querySet = pepole.objects.filter(poc_ein =('thad','sr.lead')),empty_label =“ none”)
self.fields ['lead2'] = forms.modelchoicefield(querySet = pepole.objects.filter(root__in =('lead','sr.lead')),empty_label =“ none”)
编辑:由于您有一个ModelChoiceField,我认为所有选择都将是模型或未选择。通过修改传递给建设性函数的ModleChoiceField,您可以“展开”此类选择:querySet:您可以“展开”此类型:
qs = peple.objects.filter(poc__in =('lead','sr. -lead'))
ext = people.objects.filter(角色__in =('lead','sr. -lead'))
QS = QS |分机
self.fields ['lead'] = forms.modelchoicefield(querySet = qs,empty_label ='none')
或用于更新
self.fields ['lead']。querySet = qs
结论:以上是主要CTO的所有内容,都注明了如何在Django中的Django模型中编写模型。我希望这对每个人都会有所帮助。如果您想进一步了解这一点,请记住收集并关注此网站。
