小编Ala*_*air的帖子

./manage.py 测试结果在 django.db.utils.OperationalError: no such column: MyNewColumn

长话短说:我制作了tests.py来覆盖我的django代码,我修改了很多代码和模型(18次迁移),一切都很好。

但是在最后一次更改和迁移(添加了一些布尔文件)之后,我的测试在第 8 次迁移时开始崩溃

django.db.utils.OperationalError: no such column: tickets_ticket.ActionRequired
Run Code Online (Sandbox Code Playgroud)

在网站上的 Apache 中,我可以使用新列,用它添加模型,一切看起来都不错,但测试失败

有人可以告诉我,出了什么问题以及如何纠正吗?


长长的故事:

模型.py:

def Ticket_generateUniqueID(related=''):
    retval=''
    sanitized=''
......
    # --- now find unique value
    while True:
            passNo += 1
            retval = generateID()
            try:
                    t = Ticket.objects.get(ticket_number=retval)
                    pass
            except ObjectDoesNotExist:
                    return retval
....
class Ticket(models.Model):
....
    ticket_number = models.CharField(max_length=100,default=Ticket_generateUniqueID,help_text=u"ID of ticket")
    ActionRequired = models.BooleanField(default=False,help_text=u"Action Required")
    def save(self):  # {{{
        if not self.id and not self.ticket_number: self.ticket_number=Ticket_generateUniqueID('OTH')
        retval=super(Ticket,self).save()
        return retval
Run Code Online (Sandbox Code Playgroud)

和我的测试会话(应该从没有 test_* 数据库开始)

$ ./manage.py test -v3
settings ...
Creating …
Run Code Online (Sandbox Code Playgroud)

python migration testing django

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

Django 中 admin utils 模块的更改

最近我将项目中的Django从1.6.11版本升级到1.8.7版本。现在我的帐户模块出现错误。一段代码和错误:

from django.contrib.admin import util


self.add_fieldsets = (
    ( some_data ),
    ( some_data ),
)

...
obj.update({
    'fields': admin.util.flatten_fieldsets(self.add_fieldsets),
})
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Exception Type:     AttributeError
Exception Value:    'module' object has no attribute 'util'
Run Code Online (Sandbox Code Playgroud)

是关于这个方法 admin.util.flatten_fieldsets(self.add_fieldsets) Django 1.8.x 中这个方法有什么变化吗?

django admin

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

显示对象的Django Admin-不适用于__unicode__或__str__

我的Django管理面板显示的object不是self.name对象。

我在这里经历了几个类似的问题,但似乎无法解决此问题。__unicode____str__承担相同的结果,无论是书籍和作者。我已经更改了这些行,并在每次更改中都添加了新的作者/书籍,但没有更改。

模型

from django.db import models
from django.contrib.auth.models import User


# Create your models here.

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


def __str__(self):
    return self.name


class Book(models.Model):
    auto_increment_id = models.AutoField(primary_key=True)
    name = models.CharField('Book name', max_length=100)
    author = models.ForeignKey(Author, blank=False, null=False)
    contents = models.TextField('Contents', blank=False, null=False)


def __unicode__(self):
    return self.name
Run Code Online (Sandbox Code Playgroud)

我同时使用了unicodestr,结果相同。

以下是按菜单/操作显示的管理面板的屏幕截图。

第一屏

第一屏

作者名单

作者名单

单作者

单作者

python django postgresql

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

Django Crispy 表单和选项组

我一直在 Crispy Forms 文档以及一般网络上搜索这个问题的答案。

Crispy Forms 可以<optgroup>使用 forms.Select 小部件在 ChoiceField 中输出吗?或者我必须将数据放入上下文中并在模板中以老式方式构建表单?

谢谢!

django optgroup django-crispy-forms

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

创建后带参数的 get_success_url

我有 2 个部分,一个用于普通用户,一个用于管理员(与 Django 管理员无关)。例如,我有一个产品模型。

在模型中,我使用 get_absolute_url 为普通用户设置详细 url。

产品创建位于管理部分,success_url 需要转到新创建的产品详细信息视图。

我需要获取新的 pk 并使用 get_success_url。

  def get_success_url(self):
        return reverse_lazy('accounts:detail_company', kwargs={'pk': self.pk})
Run Code Online (Sandbox Code Playgroud)

会给我以下错误:

'AccountCompanyCreateView' object has no attribute 'pk'
Run Code Online (Sandbox Code Playgroud)

django django-views django-class-based-views

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

使用include时出错('admin.site.urls'):不支持将3元组传递给include()

我是Python的新手,我在Lynda上使用视频教程来帮助我构建Social WebApp的框架.我正在尝试使用cmd python manage.py runserver从cmd 运行服务器,但是,我一直遇到此错误消息.

CMD PROMPT ERROR

Traceback (most recent call last):

File "C:\Users\Kelechi\AppData\Roaming\Python\Python35\site-packages\django\utils\autoreload.py", line 225, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\Kelechi\AppData\Roaming\Python\Python35\site-packages\django\core\management\commands\runserver.py", line 121, in inner_run
    self.check(display_num_errors=True)
  File "C:\Users\Kelechi\AppData\Roaming\Python\Python35\site-packages\django\core\management\base.py", line 364, in check
    include_deployment_checks=include_deployment_checks,
  File "C:\Users\Kelechi\AppData\Roaming\Python\Python35\site-packages\django\core\management\base.py", line 351, in _run_checks
    return checks.run_checks(**kwargs)
  File "C:\Users\Kelechi\AppData\Roaming\Python\Python35\site-packages\django\core\checks\registry.py", line 73, in run_checks
    new_errors = check(app_configs=app_configs)
  File "C:\Users\Kelechi\AppData\Roaming\Python\Python35\site-packages\django\core\checks\urls.py", line 40, in check_url_namespaces_unique
    all_namespaces = _load_all_namespaces(resolver)
  File "C:\Users\Kelechi\AppData\Roaming\Python\Python35\site-packages\django\core\checks\urls.py", line 57, in _load_all_namespaces
    url_patterns = getattr(resolver, 'url_patterns', [])
  File "C:\Users\Kelechi\AppData\Roaming\Python\Python35\site-packages\django\utils\functional.py", line 36, in __get__ …
Run Code Online (Sandbox Code Playgroud)

python django valueerror django-2.0

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

如何将多个用户添加到 Django 中的单个 auth_group

我有一个用户列表和一个名为“group1”的身份验证组。这些用户是通过bulk_createDjango 中的方法创建的。现在我需要将所有这些用户添加到组“group1”。我可以使用 for 循环来实现这一点,例如:

group1 = Groups.objects.get(name='group1') 
for user in users:
    group1.user_set.add(user)
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有任何简单和更好的方法而不使用 for 循环。

python django django-1.8 python-3.6

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

为什么这个django形式无效?

为什么这个表格没有验证?它甚至没有调用该clean()方法.

forms.py:

class SingleSampleForm(forms.Form):

    sample_id = forms.CharField(label='Sample ID:')

    class Meta:
        fields = ('sample_id',)

    def __init__(self, *args, **kwargs):
        super(SingleSampleForm, self).__init__()

        self.helper = FormHelper()
        self.helper.layout = Layout(
            Field('sample_id',
            css_class="search-form-label",),
            Submit('submit', 'Search sample', css_class='upload-btn')
        )

        self.helper.form_method = 'POST'


    def clean(self):
        print('CLEAN')
        sample_id = self.cleaned_data['sample_id']
        if sample_id:
            return sample_id
        raise ValidationError('This field is required')
Run Code Online (Sandbox Code Playgroud)

views.py:

class SampleView(View):

    sample_form = SingleSampleForm

    def get(self, request, *args, **kwargs):

        sample_form = self.sample_form()

        self.context = {'sample_form': sample_form,}

        return render(request,
                    'results/single_sample_search.html',
                    self.context)


    def post(self, request, *args, **kwargs):

        self.sample_form …
Run Code Online (Sandbox Code Playgroud)

python forms django

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

在python中使用zerorpc对项目进行docker化时导入错误

我正在将一个项目迁移到docker上的python,以便为开发提供更好的"设施".这是一个使用python 2.7,Django 1.6.8和几个RPC依赖项运行的项目

我发现自己发现了这个堆栈跟踪的应用程序崩溃,我找不到丢失的模块(没有名为coros的模块).

我认为它应该是与不好的版本相关的成瘾问题,或者是在默认骨骼上安装但不在docker骨骼上安装的成瘾问题.您有任何想法或建议来纠正这个问题吗?

我的Dockerfile

FROM python:2

WORKDIR /var/www
RUN echo "deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/Debian_9.0/ ./" >> /etc/apt/sources.list
RUN wget https://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-stable/Debian_9.0/Release.key -O- | apt-key add
RUN apt-get update 
RUN apt-get install libzmq3-dev  libev-dev -y 


RUN apt-get install -y  bash \
            git \
            default-libmysqlclient-dev \
            libldap2-dev \
            libsasl2-dev \
            libssl-dev \
            python-gevent \
            python-gevent-websocket \
            build-essential \
            python-dev \
            locales

RUN pip install django-debug-toolbar==1.2.1
RUN apt-get install libevent-dev -y 
RUN apt-get install python-all-dev -y 
RUN pip install gevent …
Run Code Online (Sandbox Code Playgroud)

python django zeromq python-2.7

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

shell 中的错误:未声明显式 app_label 并且不在 INSTALLED_APPS 中的应用程序中

我第一次尝试 Django。阅读“ Django 1.11 的两勺”一书。很棒的阅读。由于只有脚本编写经验和 Python 新手,我正在尽最大努力遵循书籍标准。

用“ cookiecutter-django ”启动了一个带有 TimeStampedModel 的简单地址应用程序进行实验。

与 makemigrations、migrate、admin 和 runserver 配合使用效果很好。没有问题,它就像一个魅力。

然而,在 csv 导入和绑定到表单上尝试书籍示例时,我想从 shell 运行它进行测试。

以下内容可能过于冗长,但我不确定如何继续。

python manage.py shell --settings=config.settings.local

导入所需代码时发生错误(任何其他表单或模型都会获得相同的结果):

In [1]: from address.forms import add_csv_postarea
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-1-f253686866ed> in <module>()
----> 1 from address.forms import add_csv_postarea

~/projects/myproject/myproject/address/forms.py in <module>()
      5 from django import forms
      6 
----> 7 from .models import PostArea, Address
      8 
      9 

~/projects/myproject/myproject/address/models.py in <module>()
      7 
      8 
----> 9 class Country(TimeStampedModel):
     10     """ …
Run Code Online (Sandbox Code Playgroud)

python django cookiecutter-django

2
推荐指数
1
解决办法
5952
查看次数