小编Mil*_*ano的帖子

PyCharm/Django - 无法导入模块views.py(IDE错误)

import viewsDjango项目中遇到了一个奇怪的问题.我不知道它是否是造成问题PyCharmDjango.所以PyCharm说它不能import views.py存档,但它在我运行服务器时起作用.

这是图片:

在此输入图像描述

你知道问题出在哪里吗?

编辑: 根据Inlangers的回答,我试图改变导入vlado_web.translations import views,但没有帮助,而且,它提出

Exception Value:
No module named translations

当我在from translations import views那里,它正常工作,但PyCharm说它无法解决.

在此输入图像描述

django import intellij-idea django-urls pycharm

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

Django - TemplateDoesNotExist at

我坚持这个问题.我在这里和谷歌检查了很多建议但没办法摆脱这个错误.

好像Django不检查app/templates/*目录.它应该自动检查,不应该吗?

我的settings.py:

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os


BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'sekret-key-goes-here'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = []


# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'chart_tools',
) …
Run Code Online (Sandbox Code Playgroud)

python django templates

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

如何在 Django 中使用具有相同属性的另一个模型创建对象

是否可以使用具有相同属性的模型的另一个对象来创建对象?

就我而言,我有两个模型 -TemporaryJobJob. 在TemporaryJob当用户填写表单创建。接下来要做的就是确认。如果他确认TemporaryJob,则该对象应转换为常规Job对象。

class Job(models.Model):
    attributes
    methods

class TemporaryJob(Job):
    pass
Run Code Online (Sandbox Code Playgroud)

我试过了,Job.objects.create(temporary_job_instance)但它不起作用。

python django inheritance django-models

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

如何重写UpdateView生成的表单的clean方法?

是否可以覆盖clean method基于类的视图 - 生成的形式的a UpdateView

在中form,我将覆盖clean方法来检查是否填充了第一字段或第二字段。

形式如下:

class MyForm(forms.ModelForm):
    ...
    def clean(self):
        super(MyForm,self).clean()
        if bool(self.cleaned_data['first_field'])== bool(self.cleaned_data['first_field']):
            raise ValidationError("Please, fill the first or second field")
Run Code Online (Sandbox Code Playgroud)

视图:

class EditOrderView(UpdateView):
    model = Job
    fields = ['language_from', 'language_to', 'level', 'short_description', 'notes',
              'first_field', 'second_field']
    template_name = 'auth/jobs/update-order.html'

    def get_object(self, queryset=None):
        return get_object_or_404(self.model, pk=self.kwargs["pk"], customer=self.request.user)

    def get_success_url(self):
        return '/my-orders/'

    def form_valid(self, form):
        self.order = form.save()
        email.AdminNotifications.edited_order(self.order)
        return HttpResponseRedirect(self.get_success_url())
Run Code Online (Sandbox Code Playgroud)

python django django-views

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

自定义中间件类会引发错误

我想创建一个非常简单的中间件,只需在每个请求上打印"OK".问题是它会引发错误:

Traceback (most recent call last):
  File "c:\python27\Lib\wsgiref\handlers.py", line 85, in run
    self.result = application(self.environ, self.start_response)
  File "C:\Users\Milano\Desktop\Projekty\venvs\sfl_venv\lib\site-packages\django\contrib\staticfiles\handlers.py", line 63, in __call__
    return self.application(environ, start_response)
  File "C:\Users\Milano\Desktop\Projekty\venvs\sfl_venv\lib\site-packages\django\core\handlers\wsgi.py", line 170, in __call__
    self.load_middleware()
  File "C:\Users\Milano\Desktop\Projekty\venvs\sfl_venv\lib\site-packages\django\core\handlers\base.py", line 52, in load_middleware
    mw_instance = mw_class()
TypeError: __init__() takes exactly 2 arguments (1 given)
Run Code Online (Sandbox Code Playgroud)

中间件类在 project/project/middleware.py

middleware.py

class UserHasProfileMiddleware(object):
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        response = self.get_response(request)
        print 'OK'
        return response
Run Code Online (Sandbox Code Playgroud)

SETTINGS.PY

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware', …
Run Code Online (Sandbox Code Playgroud)

python django django-middleware

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

使用post_save而不是pre_save信号检测字段更改

当一个字段发生变化时,我需要做一些动作.

由于此操作需要使用已保存的对象,我不能使用这样的pre_save信号:

@receiver(pre_save, sender=reservation_models.Reservation)
def generate_possible_pairs(sender, instance, **kwargs):
    try:
        reservation_old = sender.objects.get(pk=instance.pk)
    except sender.DoesNotExist:
        pass # Object is new, so field hasn't technically changed, but you may want to do something else here.
    else:
        if not reservation_old.datetime == instance.datetime: # Field has changed
            do_something(instance) # It would be better to be sure instance has been saved
Run Code Online (Sandbox Code Playgroud)

是否有可能使用post_save信号?

我想避免为此模型添加临时属性.

python django django-signals django-models django-database

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

如何过滤datetime字段上的gte,lte日期?

我试图弄清楚如何使用从datetime提取的日期过滤QuerySet。

我使用了Django-filter并且如果不遍历非常无效的QuerySet就无法编写这样的查询。

我尝试了datetime__date__gte不起作用。

class MyReservationsFilter(FilterSet):
    datetime__lte = DateFilter(method='datetime_filter',name='lte')
    class Meta:
        model = Reservation
        fields = {'status': ['exact'],
                  # 'datetime': ['lte', 'gte'],
                  'destination_from': ['exact'],
                  'destination_to': ['exact'],}


    def datetime_filter(self, queryset, name, value):

        lookup = 'datetime__'+name
        return queryset.filter(**{lookup:value})
Run Code Online (Sandbox Code Playgroud)

你知道该怎么办吗?

我不能使用,datetime__lte/gte因为:

我有一个Reservation对象r。

>> r.datetime
>> datetime.datetime(2017, 8, 31, 17, 55)
>> r.datetime.date()
>> datetime.date(2017, 8, 31)
Run Code Online (Sandbox Code Playgroud)

所以现在我尝试根据日期进行过滤:

Reservation.objects.filter(datetime__lte=datetime.date(2017, 8, 31),datetime__gte=datetime.date(2017, 8, 31))

>> []
Run Code Online (Sandbox Code Playgroud)

这是因为它不仅显示日期,而且显示时间。因此,我需要提取日期才能正确过滤。

django postgresql datetime django-filter django-postgresql

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

$.get 不是 window.function 定义中的函数

我收到错误:

未捕获的类型错误:$.get 不是函数

如果jquery在加载此功能之前我没有导入,我会理解

   <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"
            integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n"
            crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js"
            integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb"
            crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js"
            integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn"
            crossorigin="anonymous"></script>
    <script>
        window.loadCurrentLocation = function(){

            $.get("{% url "locations:ajax_get_current_location" %}").done(function (data) {
                    {#                TODO: Osetrit ak neexistuje#}
                    $('#id_my_current_location').text(data.name);
                }
            )
        };

        window.setUserLocation = function(){


            var place_id = $('#id_this_place_id').val();
            var name = $('#id_this_name').val();
            $.get("{% url "locations:ajax_set_current_user_location" %}?place_id=" + place_id + "&name=" + name).done(function (data) {
                loadCurrentLocation();
            })
        }
    </script>
Run Code Online (Sandbox Code Playgroud)

你知道问题出在哪里吗?

javascript jquery

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

如何为Scrapy项目设置RotatingFileHandler(或最大大小)

我试图确保日志文件不会超过 1048576 字节。由于Scrapy使用pythonlogging模块,我试图将Scrapy的默认值更改FileHandlerRotatingFileHandler.

我在 Scrapy 文档或设置中找不到任何有关此内容的信息。我的想法是重写__init__()蜘蛛的方法(我有一只蜘蛛)。

def __init__(self, *a, **kw):
    self.logger.logger.root.handlers[-1] = RotatingFileHandler('log.log',maxBytes=1024,backupCount=1)
    super(MainSpider, self).__init__(*a, **kw)
Run Code Online (Sandbox Code Playgroud)

但是 scrapy 在蜘蛛初始化之前记录数据。

2017-10-26 13:16:15 [scrapy.utils.log] INFO: Scrapy 1.4.0 started (bot: engine_bot)
2017-10-26 13:16:15 [scrapy.utils.log] INFO: Overridden settings:
....
Run Code Online (Sandbox Code Playgroud)

有没有办法让这个工作或设置 Scrapy 默认日志文件的最大大小?

python logging scrapy

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

Django: Model clean method called before form clean

I don't understand, why is my model clean method called before full form validation.

I have required fields in my form. If I don't fill them, I don't get form errors, instead of, the model clean method is called (so I suppose it's because save is called).

It crashes in models clean() method:

if self.date_from > self.date_to
Run Code Online (Sandbox Code Playgroud)

can't compare datetime.date to NoneType

Because I didn't filled date_to field. I think that form should have handle it and raise ValidationError and …

forms django django-models django-forms

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