我在django中有两个模型,A和B. 每个A有几个分配给它的B s,并且订购了B s,该B.order_index用于任何B.order_index对任何B.order_index的字段B.order_index进行.A. 我想编写一个查询,以检查是否有任何A,其中某些B s具有差距或具有重复的order_index值. 在SQL中,可以这样完成: SELECT order_index, RANK() OVER(PARTITION BY a_id ORDER BY order_index ASC) - 1 AS rnk WHERE rnk = order_index' 但是,当我在Django中尝试使用此代码时: B.objects.annotate(rank=RawSQL("RANK() OVER(PARTITION BY a_id ORDER BY order_index ASC) - 1", [])).filter(rank=F('order_ind
以下是关于 django-models 的编程技术问答
我有以下模型: class Foobar(models.Model): foo = models.IntegerField() 我想出了如何通过使用窗口函数来计算连续foo字段的增量: qs = Foobar.objects.annotate( delta=F('foo') - Window( Lag('foo'), partition_by=F('variant'), order_by=F('timestamp').asc(), ) ) 现在,我只想从此记录delta是负面的: qs.filter(delta__lte=0) ,但正如您所期望的那样,这给出了一个错误: django.db.utils.NotSupportedError: Window is disallowed in the filter clause. 我该如何使用django orm进行过滤? 解决
有一个模型: class Proxy(models.Model): host = models.CharField(max_length=100,) port = models.CharField(max_length=10,) login = models.CharField(max_length=100,) password = models.CharField(max_length=100,) class Meta: unique_together = ("host", "port") 我在管理员接口中添加了一批代理,其中一个为0.0.0.0:0000,登录= 123,密码= 123. 然后,我添加了另一批代理,其中一个是相同的0.0.0.0.0:0000,但使用新的登录= 234和密码= 234. 是否有可能替代保存模型方法以获取"插入...在冲突(主机,端口)的行为之类的行为,请更
我正在用纸巾进行废料,而我在django上的模型是: class Creative(models.Model): name = models.CharField(max_length=200) picture = models.CharField(max_length=200, null = True) class Project(models.Model): title = models.CharField(max_length=200) description = models.CharField(max_length=500, null = True) creative = models.ForeignKey(Creative) class Image(models.Model): url = models.CharField(max_length=500) project = models.ForeignKey(P
这是我的图像模型,我与模型产品息息相关 class Image(models.Model): name = models.CharField(blank=True,max_length=20) product = models.ForeignKey(Product) image = models.ImageField(blank=True,null=True) def __str__(self): return self.name 这是我用来尝试显示图像的观点 def类别(请求,category_id): 类别= category.objects.all() 图像= image.objects.all() 产品= product.Objects.all() 尝试: category = category.objects.get(id = category_id) 除了类别.doesnotexist: 类别=无; t
我正在尝试在django应用中添加内容读取时间( ports ),但它不正常地不知道会发生什么问题. posts/model.py : from django.db import models from django.core.urlresolvers import reverse from django.conf import settings from django.db.models.signals import pre_save from django.utils import timezone from markdown_deux import markdown from django.utils.safestring import mark_safe from .utils import get_read_time #from comments.models import Comment #from django.contrib.contenttypes.mod
我正在为我的工程公司编写一个Web应用程序(警告:我是一个霍比(Hobby)的程序员),并计划使用Django,直到我遇到此障碍.我想自然使用的型号具有多列主要键. per http://code.djangoproject.com/ticket.com/ticket/373 ,我无法使用django ,至少不是发布版本.谁能通过其他网络框架(请仅基于Python)来帮助我解决方法,还是通过建议对模型进行更改,以便它可以处理Django的限制?我真的希望后者,因为我希望将其用作学习Django的机会. 示例: 表One具有part_number和part_revision作为两个字段,应包含一个主键. P/N可以在多个修订中存在,但是P/N + Rev是唯一的. 表二具有part_number,part_revision和dimension_number作为其主要键.在特定的转速上的p/n可以具有许多维度,但是,每个尺寸都是唯一的.另外,在这种情况下,p/n + rev应该是
嘿,我想根据django中的计算值对对象进行排序...我该怎么做? 这是一个基于堆栈溢出的示例用户配置文件模型,解释了我的困境: class Profile(models.Model): user = models.ForeignKey(User) def get_reputation(): ... return reputation reputation = property(get_reputation) 所以,说我想按声誉对用户进行分类.我怎么做?我知道你不能只是这样做: Profile.objects.order_by("-reputation") 感谢您的帮助:) 解决方案 如果您需要在数据库中进行分类(因为您有很多记录,并且需要进行划分),则唯一真正的选择是将声誉转换为一个规范化的字段(例如,在被超级列出的更新中进行更新save()模型上的方法). 其他解决方案 由于您的计算
我想简单地知道django中的meta类及其做什么. from django.db import models Class Author(models.Model): first_name=models.CharField(max_length=20) last_name=models.CharField(max_length=20) class Meta: ordering=['last_name','first_name'] 解决方案 meta 是一个起源于古希腊人的词,它的意思是" meta用于描述一种自我反省或自我引用的事物." .特定于django,它是您描述模型某些方面的类.例如,默认情况下应如何订购记录,该模型的数据库表的名称是什么,等等. meta选项 [django-doc] 说: 模型元数据是"任何不是字段的东西",例如订购选项(ordering),数据库表名称(db_table)或人类可读的
我正在尝试将过滤器与Wagtail页面模型和订单模型一起使用.但是我现在在过滤器中重复.我该如何解决这样的问题? 我的代码: class FieldPosition(Orderable): page = ParentalKey('PlayerDetailPage', on_delete=models.CASCADE, related_name='field_position_relationship') field_position = models.CharField(max_length=3, choices=FIELD_POSITION_CHOICES, null=True) panels = [ FieldPanel('field_position') ] def __str__(self): return self.ge
我一直在用以下挂钩将"编辑html"源按钮添加一个"编辑html"源按钮: @hooks.register('insert_editor_js') def enable_source(): return format_html( """ registerHalloPlugin('hallohtml'); """ ) 它添加了一个按钮,但是我不知道如何添加图标 - 请参见下面没有图标的屏幕截图. 除了没有图标以外的所有按钮都可以使源编辑器正常工作.谢谢您的帮助. 解决方案 使用 insert_editor_editor_css 挂钩向编辑器提供其他CSS文件. @hooks.register('insert_editor_css') def editor_css(): return format_html(
所以我得到了带有"伴侣"领域的PlantDetailpage模型(是的,植物可以是伴侣),在其中我应该能够选择其他PlantDetailpages.我有要出现的东西,在内联中创建新植物(是的,菜单中的菜单...),但是有很少的问题: 1)它只是不会选择它们(单击"选择PlantDetailPage"的行动) 2)现在在左侧显示"伴侣"菜单按钮(就像它变成的摘要一样) - 我想避免. 3)我不知道如何将伴侣内联选择器限制为仅选择而不创建更多的plantdetailpages(因此没有窗口的递归)? 这是模型.Py: class PlantCompanion(ClusterableModel): companion = models.ForeignKey( "vegependium.PlantDetailPage", on_delete=models.SET_NULL, related_name="plants", null=True
django 1.10.5 def limit_contributor_choices(): limit = Q(group__name="contributor") | Q(group__name="Group") return limit author = models.ForeignKey( settings.AUTH_USER_MODEL, blank=True, null=True, limit_choices_to=limit_contributor_choices, verbose_name=_('Author'), on_delete=models.SET_NULL, related_name='author_pages', ) 使用以下代码,如果用户在多个组中,则查询将多次返回该用户.我如何获得不同的价值? 我在Wagtail管理员中使用了此下拉量的Wagtail Admin. 也
我的Wagtail项目中有一些应用程序,其中一个是"新闻",其中包含新闻(页面).我想覆盖标题的标签"标题"到管理中的"标题". News._meta.get_field("title").verbose_name = "Headline" 因此,我在所有应用程序和页面中都获得了所有标签"标题".为什么我有这种奇怪的效果? 更新: # news/models.py class NewsDetails(Page): template = "news/news_details.html" news_text = RichTextField(features=['h2', 'h3', 'bold', 'italic', 'link', 'ol', 'ul',]) news_image = models.ForeignKey( "wagtailimages.Image", null=True, bl
我在尝试编码正确的模型以将多个图像上传到我的Django应用程序时遇到了很多麻烦.我希望能够通过Django管理员上传这些图像.我尝试使用ImageField,但一次只允许一张图片,我也希望能够调整图像大小. 这是我的型号: class Lesson(models.Model): DRAFT = 'draft' PUBLISHED = 'published' CHOICES_STATUS = ( (DRAFT, 'Draft'), (PUBLISHED, 'Published') ) ARTICLE = 'article' QUIZ = 'quiz' CHOICES_LESSON_TYPE = ( (ARTICLE, 'Article'), (QUIZ, 'Quiz') ) course = models.ForeignKey(Cou
到目前为止,我已经尝试了互联网在这个问题上给我的任何事情,但我仍然没有解决. python 3.6.1 -django 1.11.2 -virtualenv 我有一个带有两个应用程序account和app2的Django项目.最近,随着项目的增长,我决定将它们分成更合适的应用程序.现在,我共有8个应用程序,其中account被分为user_auth和user,然后删除了account.要整理它,我将所有应用程序从根文件夹移动到/apps/. 到目前为止,只有user, user_auth, app2在未受app2的情况下使用. 每个单独文件中的代码被拆分,移至指定的应用程序并进行了重新编码以从正确的路径中获取导入. 要重新开始启动,我删除了db.sqlite3文件,删除了所有*.pyc文件,删除了所有__pycache__文件夹并清空了migrations文件夹,请确保保留所有__init__.py文件. 通过Virtualenv运行python manage.p
我正在尝试从Photographer模型中获取一个值的字典,以显示我的形式.之后,用户将选择一个Photographer,提交表单(以及其他信息),并将模型A的实例作为属性创建.尽管我了解Modelforms可能会更加友好,但在这种情况下,我必须使用baseform: @login_required def create_in(request, slug): element = get_object_or_404(Element, slug=slug) a = A.objects.create(element=element, user=request.user) a.save() return redirect('CreationEditView', pk=a.pk) urlconf将用户发送到create_in,,其中用户选择element然后将用户重定向到CreationEditView,,该>使用 baseupdateview 从djan
我正在尝试显示"属性"模型的详细视图.我有点困惑,所以我不知道如何描述情况,我以前从未遇到过这种情况. model.py import arrow from django.db import models from datetime import datetime from autoslug import AutoSlugField from model_utils.models import TimeStampedModel from django.urls import reverse from django.conf import settings class Property(TimeStampedModel): title = models.CharField(max_length=2000, null=True) # Localizare residence_complex = models.CharField(max_lengt
我有一个错误,我不确定是什么原因引起的. 这是错误: Exception Type: OperationalError Exception Value: (1054, "Unknown column 'user_id' in 'field list'") 有人知道为什么我会遇到这个错误吗?我无法弄清楚.一切似乎都很好. 我的视图代码如下: if "login" in request.session: t = request.POST.get('title', '') d = request.POST.get('description', '') fid = request.session["login"] fuser = User.objects.get(id=fid) i = Idea(user=fuser, title=t, description=d, num_votes=1) i.save