Questions tagged «django-models»

对于有关使用Web框架Django中的模型类的问题。

6
如何限制Django模型中数字字段的最大值?
Django有各种可用于模型的数字字段,例如DecimalField和PositiveIntegerField。尽管前者可以限制为存储的小数位数和总字符数,但是有没有办法将其限制为仅存储一定范围内的数字,例如0.0-5.0? 失败了,有什么方法可以限制PositiveIntegerField只存储例如最大为50的数字吗? 更新:现在,错误6845 已关闭,此StackOverflow问题可能没有意义。-sampablokuper

8
如何在Django中表达一对多关系
我现在正在定义Django模型,我意识到OneToManyField模型字段类型中没有。我确定有办法做到这一点,所以我不确定我缺少什么。我基本上有这样的事情: class Dude(models.Model): numbers = models.OneToManyField('PhoneNumber') class PhoneNumber(models.Model): number = models.CharField() 在这种情况下,每个Dude可以有多个PhoneNumberS,但这种关系应该是单向的,因为我不需要从知道PhoneNumber其Dude拥有它本身,因为我可能有许多不同的对象自身的PhoneNumber情况下,如Business为例: class Business(models.Model): numbers = models.OneToManyField('PhoneNumber') 我将OneToManyField用模型中的什么替换(不存在)以表示这种关系?我来自Hibernate / JPA,在这里一对多关系的声明很简单: @OneToMany private List<PhoneNumber> phoneNumbers; 如何在Django中表达?


5
如何使用Django批量更新?
我想用Django更新表格-原始SQL中的内容如下: update tbl_name set name = 'foo' where name = 'bar' 我的第一个结果是这样的-但这很讨厌,不是吗? list = ModelClass.objects.filter(name = 'bar') for obj in list: obj.name = 'foo' obj.save() 有没有更优雅的方式?

3
Django动态模型字段
我正在开发一个多租户应用程序,其中一些用户可以定义自己的数据字段(通过管理员)以收集表单中的其他数据并报告数据。后一点使得JSONField不是一个很好的选择,所以我有以下解决方案: class CustomDataField(models.Model): """ Abstract specification for arbitrary data fields. Not used for holding data itself, but metadata about the fields. """ site = models.ForeignKey(Site, default=settings.SITE_ID) name = models.CharField(max_length=64) class Meta: abstract = True class CustomDataValue(models.Model): """ Abstract specification for arbitrary data. """ value = models.CharField(max_length=1024) class Meta: abstract = …

4
在Django中,如何使用动态字段查找过滤QuerySet?
给定一个班级: from django.db import models class Person(models.Model): name = models.CharField(max_length=20) 是否有可能(如果有的话)有一个基于动态参数进行过滤的QuerySet?例如: # Instead of: Person.objects.filter(name__startswith='B') # ... and: Person.objects.filter(name__endswith='B') # ... is there some way, given: filter_by = '{0}__{1}'.format('name', 'startswith') filter_value = 'B' # ... that you can run the equivalent of this? Person.objects.filter(filter_by=filter_value) # ... which will throw an …

4
从数据库重新加载Django对象
是否可以从数据库刷新django对象的状态?我的意思是行为大致等同于: new_self = self.__class__.objects.get(pk=self.pk) for each field of the record: setattr(self, field, getattr(new_self, field)) 更新:在跟踪器中找到了重新打开/固定补丁之战:http ://code.djangoproject.com/ticket/901 。仍然不明白为什么维护者不喜欢这个。


2
Django模型表单对象的自动创建日期?
自动设置对象创建日期以及记录该对象上次更新时间的字段的最佳方法是什么? models.py: created_at = models.DateTimeField(False, True, editable=False) updated_at = models.DateTimeField(True, True, editable=False) views.py: if request.method == 'POST': form = MyForm(request.POST) if form.is_valid(): obj = form.save(commit=False) obj.user = request.user obj.save() return HttpResponseRedirect('obj_list') 我得到错误: objects_object.created_at may not be NULL 我是否必须自己手动设置此值?我以为那是传递给参数的重点DateTimeField(或者它们只是默认值,由于我已经设置了editable=False它们,所以它们不会在表单上显示,因此不会在请求中提交,因此也不会得到放入表格?)。 最好的方法是什么?一种__init__方法是什么?

6
django的model.save()为什么不调用full_clean()?
我只是好奇是否有人知道,除非有理由将django的orm不保存在模型中,否则它不会在模型上调用“ full_clean”。 请注意,当您调用模型的save()方法时,不会自动调用full_clean()。若要为自己创建的模型运行一步模型验证,则需要手动调用它。 django的完整档案 (注意:报价已针对Django 1.6更新...之前的django文档也对ModelForms提出了警告。) 人们为什么不希望这种行为有充分的理由?我想如果您花时间向模型添加验证,则希望每次保存模型时都运行验证。 我知道如何使一切正常工作,我只是在寻找一种解释。

13
Django过滤器与获取单个对象?
我正在与一些同事就此进行辩论。当您只期望一个对象时,是否有一种在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 第一种方法在行为上似乎更正确,但是在控制流中使用异常,这可能会带来一些开销。第二个是回旋处,但永远不会引发例外。 有什么想法是可取的?哪个更有效?

12
在Django模型中存储列表的最有效方法是什么?
目前,我的代码中有很多类似于以下内容的python对象: class MyClass(): def __init__(self, name, friends): self.myName = name self.myFriends = [str(x) for x in friends] 现在,我想将其转换为Django模型,其中self.myName是字符串字段,而self.myFriends是字符串列表。 from django.db import models class myDjangoModelClass(): myName = models.CharField(max_length=64) myFriends = ??? # what goes here? 由于列表是python中如此常见的数据结构,因此我希望它有一个Django模型字段。我知道我可以使用ManyToMany或OneToMany关系,但是我希望避免代码中的额外间接访问。 编辑: 我添加了这个相关问题,人们可能会发现它很有用。

3
Django values_list vs值
在Django中,以下两个之间有什么区别: Article.objects.values_list('comment_id', flat=True).distinct() 与 Article.objects.values('comment_id').distinct() 我的目标是在每个下方获得一个唯一的注释ID列表Article。我已经阅读了文档(实际上已经使用了这两种方法)。结果似乎很相似。

8
Django转储单个模型的数据?
我可以dumpdata在Django中执行中仅对单个模型执行,而不对整个应用程序执行,如果可以,如何执行? 对于一个应用程序,它将是: python manage.py dumpdata myapp 但是,我希望转储某些特定的模型,例如“ myapp.mymodel”。原因是,在我不希望转储的同一应用程序中,我有300万条巨大的记录数据集。

4
使用Django / South重命名模型的最简单方法?
我一直在South的网站,Google和SO上寻找答案,但是找不到简单的方法来做到这一点。 我想使用South重命名Django模型。说您有以下几点: class Foo(models.Model): name = models.CharField() class FooTwo(models.Model): name = models.CharField() foo = models.ForeignKey(Foo) 并且您想要将Foo转换为Bar,即 class Bar(models.Model): name = models.CharField() class FooTwo(models.Model): name = models.CharField() foo = models.ForeignKey(Bar) 为简单起见,我只是尝试将名称从更改Foo为Bar,但现在忽略其中的foo成员FooTwo。 使用South进行此操作最简单的方法是什么? 我可能可以进行数据迁移,但这似乎很复杂。 编写一个自定义迁移,例如db.rename_table('city_citystate', 'geo_citystate'),但是在这种情况下我不确定如何修复外键。 您知道一种更简单的方法吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.