Tag: django models

models.py越来越巨大,最好的方法是什么来分解它?

来自我的主pipe的指示:“我想避免在models.py放置任何逻辑,从这里开始,让我们用它作为访问数据库的类,并将所有逻辑保存在使用模型类的外部类中,他们。” 我觉得这是错误的路要走。 我觉得为了保持文件小而保持逻辑不是模型是一个坏主意。 如果逻辑在模型中是最好的,那么无论文件大小如何,这都是它应该去的地方。 那么有没有简单的方法来使用包括? 在PHP中,我想向主pipebuild议我们只有models.py include()来自其他地方的模型类。 从概念上讲,这将允许模型拥有我们想要的所有逻辑,但通过增加文件数量(导致冲突等修订控制问题较less)来保持文件的大小。 那么,是否有一种简单的方法可以从models.py文件中删除模型类,但仍然可以使用所有的Django工具? 或者,对于“large”models.py文件的一般问题,是否有完全不同的优雅的解决scheme? 任何input将不胜感激。

django syncdb和一个更新的模型

我最近更新了我的模型,添加了一个BooleanField,但是当我执行python manage.py syncdb ,它不会将新字段添加到模型的数据库中。 我怎样才能解决这个问题 ?

从数据库中重新加载django对象

有没有可能从数据库刷新django对象的状态? 我的意思是行为大致相当于: new_self = self.__class__.objects.get(pk=self.pk) for each field of the record: setattr(self, field, getattr(new_self, field)) UPD:在跟踪器中发现重新打开/ wontfix战争: http ://code.djangoproject.com/ticket/901。 仍然不明白为什么维护者不喜欢这个。

调整Django Admin中的字段大小

当添加或编辑pipe理员的条目时,Django倾向于填充横向空间,但在某些情况下,当编辑8个字符的date字段或CharField(也可能是6或8个字符)字符宽,然后编辑框上升到15或20个字符。 我怎么能告诉pipe理员文本框应该是多么宽,或者一个TextField编辑框的高度?

在Django模型中存储列表最有效的方法是什么?

目前我在我的代码中有很多类似于以下的python对象: class MyClass(): def __init__(self, name, friends): self.myName = name self.myFriends = [str(x) for x in friends] 现在我想把它变成一个Django模型,其中self.myName是一个string字段,而self.myFriends是一个string列表。 from django.db import models class myDjangoModelClass(): myName = models.CharField(max_length=64) myFriends = ??? # what goes here? 由于这个列表是python中的一个常见的数据结构,所以我期望有一个Django模型字段。 我知道我可以使用ManyToMany或OneToMany关系,但我希望避免在代码中的额外间接。 编辑: 我添加了这个相关的问题 ,哪些人可能会觉得有用。

将Django模型对象转换为所有字段不变的字典

如何将django模型对象转换为所有字段的字典? 所有理想情况下都包含带有editable = False的外键和字段。 让我详细说一下。 假设我有如下的django模型: from django.db import models class OtherModel(models.Model): pass class SomeModel(models.Model): value = models.IntegerField() value2 = models.IntegerField(editable=False) created = models.DateTimeField(auto_now_add=True) reference1 = models.ForeignKey(OtherModel, related_name="ref1") reference2 = models.ManyToManyField(OtherModel, related_name="ref2") 在terminal,我做了以下几点: other_model = OtherModel() other_model.save() instance = SomeModel() instance.value = 1 instance.value2 = 2 instance.reference1 = other_model instance.save() instance.reference2.add(other_model) instance.save() 我想将其转换为下面的字典: {'created': datetime.datetime(2015, […]

Django ORM中select_related和prefetch_related有什么区别?

在Django文档中, select_related()“跟随”外键关系,在执行查询时select其他相关对象数据。 prefetch_related()为每个关系进行单独的查找,并在Python中执行“连接”。 “在python中join”是什么意思? 有人可以用一个例子来说明吗? 我的理解是,对于外键关系,使用select_related; 对于M2M关系,使用prefetch_related。 它是否正确?

Django模型 – 不区分大小写的查询/过滤

我如何查询/过滤Django中,并忽略我的查询string的情况下? 我有类似的东西,喜欢忽略my_parameter的情况: MyClass.objects.filter(name=my_parameter)

Django倾倒单个模型的数据?

我可以在单个模型上执行Django中的dumpdata ,而不是整个应用程序,如果是这样,怎么办? 对于一个应用程序,它将是: python manage.py dumpdata myapp 但是,我想要一些特定的模型,比如“myapp.mymodel”被抛弃。 原因是,我有一些巨大的,300万的logging,加上同样的应用程序,我不喜欢倾销的数据集。

Djangofilter与获取单个对象?

我正在和一些同事讨论这个问题。 有一个首选的方法来检索Django中的对象,当你只有一个? 两个明显的方法是: try: obj = MyModel.objects.get(id=1) except MyModel.DoesNotExist: # we have no object! do something pass 和 objs = MyModel.objects.filter(id=1) if len(objs) == 1: obj = objs[0] else: # we have no object! do something pass 第一种方法似乎在行为上更正确,但在控制stream中使用exception,这可能会引入一些开销。 第二个是更多的迂回,但永远不会例外。 任何想法哪个更好? 哪个更有效率?