Tag: django

Django只select具有重复字段值的行

假设我们在django中有一个模型定义如下: class Literal: name = models.CharField(…) … 名称字段不是唯一的,因此可能有重复的值。 我需要完成以下任务:从模型中select至less有一个 name字段重复值的所有行。 我知道如何使用纯SQL(可能不是最好的解决scheme): select * from literal where name IN ( select name from literal group by name having count((name)) > 1 ); 那么,是否可以使用django ORM来select它? 或更好的SQL解决scheme?

Django循环模板 – 最后一次迭代

我有一个基本的问题,在Django模板语言中,如何判断是否在“for循环”的最后一个循环迭代?

Django模板:如何访问列表中第一个项目的属性

很简单。 我有一个Python列表,我传递给一个Django模板。 我可以使用专门访问此列表中的第一个项目 {{ thelist|first }} 但是,我也想访问该项目的属性…理想情况下,你会认为这将是这样的: {{ thelist|first.propertyName }} 但是,唉,事实并非如此。 有没有任何模板解决scheme,或者我只是要find自己传递一个额外的模板variables…

如何禁用Django的CSRFvalidation?

我在settings.py注释了csrf处理器和中间件行: 122 123 TEMPLATE_CONTEXT_PROCESSORS = ( 124 'django.contrib.auth.context_processors.auth', 125 # 'django.core.context_processors.csrf', 126 'django.core.context_processors.request', 127 'django.core.context_processors.static', 128 'cyathea.processors.static', 129 ) 130 131 MIDDLEWARE_CLASSES = ( 132 'django.middleware.common.CommonMiddleware', 133 'django.contrib.sessions.middleware.SessionMiddleware', 134 # 'django.middleware.csrf.CsrfViewMiddleware', 135 'django.contrib.auth.middleware.AuthenticationMiddleware', 136 'django.contrib.messages.middleware.MessageMiddleware', 137 'django.middleware.locale.LocaleMiddleware', 138 # Uncomment the next line for simple clickjacking protection: 139 # 'django.middleware.clickjacking.XFrameOptionsMiddleware', 140 ) 但是,当我使用Ajax发送请求时,Django仍然响应“csrf标记不正确或丢失”,并且在向标题添加X-CSRFToken之后,请求会成功。 这里发生了什么 ?

如何使用Django获取当前的urlname?

我必须根据当前的urldynamic地build立一个url。 使用{% url %}标记是最简单的方法,但是我需要使用当前的url名称来dynamic生成新的标记。 我如何获得连接到导致当前视图的urlconf的url名称? 编辑:我知道我可以手动使用get_absolute_url手工地址,但我宁愿避免它,因为它是一个演讲的一部分,我想演示只有一种方法来build立url。 学生知道如何使用{% url %} 。 他们知道面对一个问题时,他们必须产生一个更完整的url基于当前的一个。 最简单的方法是再次使用{% url %} ,并有一些变化。 由于我们已经命名了url, 我们需要知道如何获取调用当前视图的url的名称。 编辑2:另一个用例是根据基本模板différently显示部分基本模板。 还有其他方法可以做到这一点(使用CSS和{%block%}),但有时如果视图名称与链接相匹配,则可以移除base.html菜单项的标签。

如何将Django QuerySet转换为列表

我有以下几点: answers = Answer.objects.filter(id__in=[answer.id for answer in answer_set.answers.all()]) 那么稍后: for i in range(len(answers)): # iterate through all existing QuestionAnswer objects for existing_question_answer in existing_question_answers: # if an answer is already associated, remove it from the # list of answers to save if answers[i].id == existing_question_answer.answer.id: answers.remove(answers[i]) # doesn't work existing_question_answers.remove(existing_question_answer) 我收到一个错误: 'QuerySet' object has no […]

在Django Rest Framework中包含中介(通过模型)

我有一个关于处理m2m /通过模型及其在django rest框架中的表示的问题。 我们举一个经典的例子: models.py: from django.db import models class Member(models.Model): name = models.CharField(max_length = 20) groups = models.ManyToManyField('Group', through = 'Membership') class Group(models.Model): name = models.CharField(max_length = 20) class Membership(models.Model): member = models.ForeignKey('Member') group = models.ForeignKey('Group') join_date = models.DateTimeField() serializers.py: imports… class MemberSerializer(ModelSerializer): class Meta: model = Member class GroupSerializer(ModelSerializer): class Meta: model = […]

如何停止获取ImportError:与wsgi一起使用django时无法导入设置“mofin.settings”?

我不能让wsgi导入我的项目“mofin”的设置文件。 来自apache错误日志的错误列表如下 mod_wsgi (pid=4001): Exception occurred within WSGI script '/var/www/wsgi-scripts/django.wsgi'. Traceback (most recent call last): File "/usr/lib/python2.5/site-packages/django/core/handlers/wsgi.py", line 228, in __call__ self.load_middleware() File "/usr/lib/python2.5/site-packages/django/core/handlers/base.py", line 31, in load_middleware for middleware_path in settings.MIDDLEWARE_CLASSES: File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 28, in __getattr__ self._import_settings() File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 59, in _import_settings self._target = Settings(settings_module) File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 94, in __init__ raise […]

可以django的auth_user.username是varchar(75)? 这怎么可能呢?

在auth_user上运行alter table以使用username变成varchar(75)是否有什么问题? 如果有什么打破了什么? 如果您要将auth_user.username更改为varchar(75) ,那么您需要修改django吗? 这只是一个在源代码中改变30到75的问题吗? username = models.CharField(_('username'), max_length=30, unique=True, help_text=_("Required. 30 characters or fewer. Letters, numbers and @/./+/-/_ characters")) 还是还有其他的validation,在这个领域将不得不改变或任何其他影响这样做? 请参阅下面的bartek讨论关于做这件事的原因。 编辑 :在几个月后回顾这个。 对于任何人不知道的前提:有些应用程序没有要求或希望使用用户名,他们只使用电子邮件注册和身份validation。 不幸的是,在django auth.contrib中,用户名是必需的。 您可以开始在用户名字段中input电子邮件,但该字段只有30个字符,并且电子邮件在现实世界中可能很长。 可能甚至比75字符在这里build议更长,但75字符容纳最理智的电子邮件地址。 这个问题就是针对这种情况,正如基于电子邮件authentication的应用程序所遇到的那样。

Django的。 您无权编辑任何内容

我前段时间创build了一个小应用程序。 我创build了admin.py并使用admin.site.register(MenuEntry)将该类添加到pipe理控制台。 它显示那个类的项目很好。 然后,我开始另一个应用程序的工作,并创造了一切像以前 但现在它说: 你没有权限编辑任何东西。 我比较了这个应用程序和这个应用程序的文件,他们看起来非常相似,所以我只是找不到差异,我不知道现在要做什么,以使其工作。