Questions tagged «django-models»

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

3
Django模型中字段的默认值
假设我有一个模型: class SomeModel(models.Model): id = models.AutoField(primary_key=True) a = models.CharField(max_length=10) b = models.CharField(max_length=7) 目前,我正在使用默认的admin创建/编辑此类型的对象。如何b从管理员中删除该字段,以使每个对象都无法创建一个值,而是会收到默认值0000000?

4
Django错误-不存在匹配的查询
我最终将项目发布到生产级别,突然之间,我遇到了一些在开发阶段从未解决的问题。 当用户发布一些操作时,有时会出现以下错误。 Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 111, in get_response response = callback(request, *callback_args, **callback_kwargs) File "home/ubuntu/server/opineer/comments/views.py", line 103, in comment_expand comment = Comment.objects.get(pk=comment_id) File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 131, in get return self.get_query_set().get(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 366, in get % self.model._meta.object_name) DoesNotExist: Comment matching query does not …

3
从一个应用程序到Django中另一个应用程序的外键
我想知道是否有可能在Django的models.py文件中定义外键,该外键引用了另一个应用程序中的表? 换句话说,我有两个应用程序,分别称为cf和profile,在cf / models.py中,我拥有(以及其他功能): class Movie(models.Model): title = models.CharField(max_length=255) 并希望在profile / models.py中拥有: class MovieProperty(models.Model): movie = models.ForeignKey(Movie) 但是我无法正常工作。我试过了: movie = models.ForeignKey(cf.Movie) 并且我曾尝试在models.py的开头导入cf.Movie,但我总是会遇到错误,例如: NameError: name 'User' is not defined 我是通过尝试以这种方式将两个应用程序绑定在一起来违反规则,还是只是语法错误?

5
绑定Django Admin的模型历史记录
设置: 我正在开发一个Django应用程序,该应用程序允许用户在数据库中创建一个对象,然后根据需要返回并对其进行编辑。 Django的管理站点保留了通过管理站点对对象所做的更改的历史记录。 问题: 如何将我的应用程序挂接到管理站点的更改历史记录,以便可以看到用户对其“内容”所做的更改历史记录?

4
在django中选择DISTINCT各个列?
我很好奇,是否有任何方法可以在Django中进行查询,而该查询不在SELECT * FROM...下面。我正在尝试执行“ SELECT DISTINCT columnName FROM ...”。 具体来说,我有一个看起来像这样的模型: class ProductOrder(models.Model): Product = models.CharField(max_length=20, promary_key=True) Category = models.CharField(max_length=30) Rank = models.IntegerField() 其中Rank是内的排名Category。我希望能够遍历所有类别,对该类别中的每个等级进行一些操作。 我想先获取系统中所有类别的列表,然后查询该类别中的所有产品,然后重复进行直到处理完每个类别。 我宁愿避免使用原始SQL,但是如果我必须去那里,那很好。尽管我以前从未在Django / Python中编写过原始SQL。


2
仅更新模型中的特定字段。
我有一个模特 class Survey(models.Model): created_by = models.ForeignKey(User) question = models.CharField(max_length=150) active = models.NullBooleanField() def __unicode__(self): return self.question 现在我只想更新该active字段。所以我这样做: survey = get_object_or_404(Survey, created_by=request.user, pk=question_id) survey.active = True survey.save(["active"]) 现在我得到一个错误IntegrityError: PRIMARY KEY must be unique。 我可以用这种方法更新吗?

3
如何找到两个Django查询集的并集?
我有一个带有两个自定义管理器方法的Django模型。每个对象都基于对象的不同属性返回模型对象的不同子集。 有没有什么方法可以获取一个查询集,或者仅仅是一个对象列表,那就是每个管理器方法返回的查询集的并集?

3
models.py越来越大,最好的分解方法是什么?
主管的指示:“我要避免在其中添加任何逻辑models.py。从现在开始,让我们将其用作访问数据库的类,并将所有逻辑保留在使用模型类或包装它们的外部类中。” 我觉得这是错误的方法。我觉得将逻辑保持在模型之外只是为了减小文件大小是一个坏主意。如果模型中的逻辑最好,则无论文件大小如何,逻辑都是真正应该去的地方。 那么,有没有一种简单的方法可以只使用include?用PHP讲,我想向主管建议,我们只是models.py从其他地方获得了include()模型类。从概念上讲,这将使模型具有我们想要的所有逻辑,但可以通过增加文件数量来减小文件大小(从而减少诸如冲突等的版本控制问题)。 因此,有没有一种简单的方法可以从models.py文件中删除模型类,但是仍然可以使模型与所有Django工具一起使用?或者,对于“大” models.py文件的一般问题,是否有完全不同但优雅的解决方案?任何输入将不胜感激。

4
Django模型字段默认基于同一模型中的另一个字段
我有一个模型,希望包含一个科目名称及其首字母(他的数据有些匿名,并且通过首字母进行跟踪)。 现在,我写道 class Subject(models.Model): name = models.CharField("Name", max_length=30) def subject_initials(self): return ''.join(map(lambda x: '' if len(x)==0 else x[0], self.name.split(' '))) # Next line is what I want to do (or something equivalent), but doesn't work with # NameError: name 'self' is not defined subject_init = models.CharField("Subject Initials", max_length=5, default=self.subject_initials) 如最后一行所示,我希望能够将姓名的缩写实际作为字段(与名称无关)存储在数据库中,但是会使用基于名称字段的默认值进行初始化。但是,由于Django模型似乎没有“自我”,我遇到了问题。 …

8
Django删除FileField
Наэтотвопросестьответына堆栈溢出русском:КакудалитьфайлнадискеизполяFileField / ImageFieldприудалениоб 我在Django中建立网路应用程式。我有一个上传文件的模型,但无法删除它。这是我的代码: class Song(models.Model): name = models.CharField(blank=True, max_length=100) author = models.ForeignKey(User, to_field='id', related_name="id_user2") song = models.FileField(upload_to='/songs/') image = models.ImageField(upload_to='/pictures/', blank=True) date_upload = models.DateField(auto_now_add=True) def delete(self, *args, **kwargs): # You have to prepare what you need before delete the model storage, path = self.song.storage, self.song.path # Delete the model …

3
如何在Django中执行SELECT MAX?
我有一个对象列表,如何运行查询以给出字段的最大值: 我正在使用此代码: def get_best_argument(self): try: arg = self.argument_set.order_by('-rating')[0].details except IndexError: return 'no posts' return arg 评分是整数

6
在Django模型中使用UUID作为主键(通用关系影响)
由于多种原因^,我想在某些Django模型中使用UUID作为主键。如果这样做,我是否仍可以使用通过ContentType使用通用关系的外部应用程序,例如“ contrib.comments”,“ django-voting”或“ django-tagging”? 以“ django-voting”为例,Vote模型如下所示: class Vote(models.Model): user = models.ForeignKey(User) content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField() object = generic.GenericForeignKey('content_type', 'object_id') vote = models.SmallIntegerField(choices=SCORES) 该应用似乎假设要投票的模型的主键是整数。 内置的注释应用程序似乎能够处理非整数PK,但是: class BaseCommentAbstractModel(models.Model): content_type = models.ForeignKey(ContentType, verbose_name=_('content type'), related_name="content_type_set_for_%(class)s") object_pk = models.TextField(_('object ID')) content_object = generic.GenericForeignKey(ct_field="content_type", fk_field="object_pk") 对于第三方应用程序来说,这种“整数PK假定”问题是否很常见,这会使使用UUID感到痛苦?或者,可能是我误读了这种情况? 有没有一种方法可以将UUID用作Django中的主键,而又不会造成太多麻烦? ^一些原因:隐藏对象计数,防止url“ id爬行”,使用多台服务器创建不冲突的对象,...

10
尝试在带有条目的子表之后添加父表时,遇到TypeError:__init __()缺少1个必需的位置参数:'on_delete'
我的sqlite数据库中有两个类,一个名为的父表,一个名为Categorie的子表Article。我首先创建了子表类并添加了条目。所以首先我有这个: class Article(models.Model): titre=models.CharField(max_length=100) auteur=models.CharField(max_length=42) contenu=models.TextField(null=True) date=models.DateTimeField( auto_now_add=True, auto_now=False, verbose_name="Date de parution" ) def __str__(self): return self.titre 在添加父表之后,现在models.py看起来像这样: from django.db import models # Create your models here. class Categorie(models.Model): nom = models.CharField(max_length=30) def __str__(self): return self.nom class Article(models.Model): titre=models.CharField(max_length=100) auteur=models.CharField(max_length=42) contenu=models.TextField(null=True) date=models.DateTimeField( auto_now_add=True, auto_now=False, verbose_name="Date de parution" ) categorie = …

8
在Django中批量创建模型对象
我有很多对象要保存在数据库中,因此我想用它创建Model实例。 使用django,我可以使用创建所有模型实例,MyModel(data)然后将其全部保存。 目前,我有这样的事情: for item in items: object = MyModel(name=item.name) object.save() 我想知道是否可以直接保存对象列表,例如: objects = [] for item in items: objects.append(MyModel(name=item.name)) objects.save_all() 如何在一次交易中保存所有对象?

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.