小编DHe*_*rls的帖子

在 Django 中使用条件注释时出错:select_format

尝试注释查询集时,我从 django 方法中收到 TypeError。我在 Ubuntu 上使用 Django 1.11.12 和 MySQL 5.7.22。

这是我的models.py:

class Group(models.Model):
    name = models.CharField(max_length=100)

class ActivationRecord(models.Model):
    group = models.ForeignKey('directory.Group')
    year = models.PositiveIntegerField()
Run Code Online (Sandbox Code Playgroud)

如果一个组有给定年份的记录,则该组是“活跃的”。我正在尝试使用以下查询注释组是否处于活动状态:

Group.objects.annotate(active=Case(
    When(activationrecord__year=2018, then=True), default=False, output_field=BooleanField))
Run Code Online (Sandbox Code Playgroud)

当我运行时,我收到以下错误:

  File "/home/vagrant/Envs/think/lib/python3.5/site-packages/django/db/models/query.py", line 226, in __repr__
    data = list(self[:REPR_OUTPUT_SIZE + 1])
  File "/home/vagrant/Envs/think/lib/python3.5/site-packages/django/db/models/query.py", line 250, in __iter__
    self._fetch_all()
  File "/home/vagrant/Envs/think/lib/python3.5/site-packages/django/db/models/query.py", line 1118, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "/home/vagrant/Envs/think/lib/python3.5/site-packages/django/db/models/query.py", line 53, in __iter__
    results = compiler.execute_sql(chunked_fetch=self.chunked_fetch)
  File "/home/vagrant/Envs/think/lib/python3.5/site-packages/django/db/models/sql/compiler.py", line 877, in execute_sql
    sql, params = self.as_sql()
  File "/home/vagrant/Envs/think/lib/python3.5/site-packages/django/db/models/sql/compiler.py", …
Run Code Online (Sandbox Code Playgroud)

mysql django

4
推荐指数
1
解决办法
942
查看次数

Django FilteredSelectMultiple 未在页面上呈现

我目前使用的是 Django 版本 1.11.2,并且想在管理页面之外使用 FilteredSelectMultiple 小部件。

这是我的 forms.py:

class TBDAuthGroupManageForm(forms.Form):
    permissions = forms.ModelMultipleChoiceField(queryset=Permission.objects.all(),
                                                required=True,
                                                widget=FilteredSelectMultiple("Permissions", is_stacked=False))

class Media:
    css = {'all': ('/static/admin/css/widgets.css',), }
    js = ('/admin/jsi18n/',)

def __init__(self, parents=None, *args, **kwargs):
    super(TBDAuthGroupManageForm, self).__init__(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

这是我的观点.py:

class TBDAuthGroupManageView(DetailView):
    model = TBDAuthGroup
    template_name = 'perms/tbdauthgroup_manage.html'

    def get_context_data(self, **kwargs):
    context = super(TBDAuthGroupManageView, self).get_context_data(**kwargs)
    context['form'] = TBDAuthGroupManageForm()
    return context
Run Code Online (Sandbox Code Playgroud)

这是我的模板:

{% extends "base.html" %}
{% load static %}
{% block css %}
    {{ form.media }}
    <script type="text/javascript" src="{% static 'js/jquery-3.1.1.min.js' %}"></script>
    <script type="text/javascript" src="/static/admin/js/jquery.min.js"></script> …
Run Code Online (Sandbox Code Playgroud)

python django django-forms django-1.11

3
推荐指数
1
解决办法
3173
查看次数

标签 统计

django ×2

django-1.11 ×1

django-forms ×1

mysql ×1

python ×1