小编Kjj*_*ssy的帖子

为什么Django 1.9用设置和URL中的列表[]替换元组()?

我有点好奇知道为什么Django 1.9用设置,URL和其他配置文件中的lists []替换了元组()

我刚升级到Django 1.9并发现了这些变化.他们背后的逻辑是什么?

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles'
    ]

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]


STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]
Run Code Online (Sandbox Code Playgroud)

urls.py

urlpatterns = [
    url(r'^', admin.site.urls),
]
Run Code Online (Sandbox Code Playgroud)

这些变化有什么不同吗?

python django python-2.7 python-3.x django-1.9

35
推荐指数
2
解决办法
2290
查看次数

VariableDoesNotExist:在u'None中查找键[val2]失败

我得到一个VariableDoesNotExist错误与下面的代码片段时obj1.pageNone.

{{ obj1.val1|default:obj1.page.val2 }}
Run Code Online (Sandbox Code Playgroud)

通常,Django模板不关心None值的属性访问.

python django django-templates

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

Django-如何在查询集中获得倒数第二个记录?

我有一个名为employees_salary模型,我需要获得员工的第二高薪.

我得到的是 - 我可以过滤最新的(),第一个(),最后一个()

这是工作,但如何过滤最后我错过了什么

请帮忙

django python-2.7

6
推荐指数
2
解决办法
5938
查看次数

如何在python中使用youtube-dl在ydl_opts中设置目录?

**
Run Code Online (Sandbox Code Playgroud)

我需要添加什么来指定所有下载mp3都将转到此目录:e:/ python/downloadedsongs

ydl_opts = {
    'format': 'bestaudio/best',
    'download_archive': 'downloaded_songs.txt',
    'outtmpl': '%(title)s.%(ext)s',
    'postprocessors': [{
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'mp3',
        'preferredquality': '192',
        }],
    'logger': MyLogger(),
    'progress_hooks': [my_hook],

}
Run Code Online (Sandbox Code Playgroud)

如果我理解正确outtmpl是输出文件名称的模板.**

youtube-api python-2.7 youtube-dl

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

Django-cors-headers 不工作

我的 django 版本是 1.8.6。我已将 corsheaders 文件夹复制到项目文件夹中。我已经 pip install django-cors-headers(版本 1.1.0)。这是我的设置.py:

    INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'MyWebsite_app',
    'storages',
    'rest_framework',
    'corsheaders',
)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
)

CORS_ORIGIN_ALLOW_ALL = True
Run Code Online (Sandbox Code Playgroud)

这是我的jquery:

function getLeague() {
$.ajax({
    url: 'http://otherdomain.ashx?username=xxx&password=xxx&sportsBook=xxx&sportsType=xxx&gameType=xxx',
    type: 'GET',
    dataType: 'json',
    success: function(data) {
        alert('Success');
    },
    error: function(data) {
        alert('Fail');
    }
    });
}
Run Code Online (Sandbox Code Playgroud)

执行 getLeague() 时,它不断警告“失败”。当我看到控制台时,它显示“XMLHttpRequest 无法加载http://otherdomain.ashx?username=xxx&password=xxx&sportsBook=xxx&sportsType=xxx&gameType=xxx。请求的源上不存在 Access-Control-Allow-Origin 标头”。我应该在 urls.py 或 view.py 中添加一些代码吗?谢谢。

python django ajax jquery django-cors-headers

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

Django Rest框架中日期的国际化?

我正在尝试在API(的Django rest框架)中翻译Dates ,到目前为止,国际化和本地化正在为所有其他方面工作,但我仍然坚持使用Dates。

只有英语和法语,而且我已经重新启动了几次服务器,但是无法获得FR中的日期, 因为您可以看到我使用过Rosetta在此处输入图片说明

示例代码:

@staticmethod
def get_start_date(obj):
    return obj.start_date.strftime("%d %B, %Y")
Run Code Online (Sandbox Code Playgroud)

当lang代码为en O / P时:

start_date“:” 2016年1月1日“

但是当郎代码FR预期的结果:

start_date“:“ 2016年1月1日”

还是用英语显示

settings.py, 我已经成功添加了基本设置,供您参考

MIDDLEWARE_CLASSES
'django.middleware.locale.LocaleMiddleware',

USE_L10N = True
Run Code Online (Sandbox Code Playgroud)

提前致谢

python django date internationalization django-rest-framework

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

Formset.is_valid() 错误,为什么?

我正在尝试验证一个表单集,它完美地显示在模板中,但是当我尝试保存它时,它的验证返回 False。

我试图把一些错误回调和错误 print(formset.non_form_errors)说如下:

<bound method PhysicianSpecialtiesFormFormSet.non_form_errors of <django.forms.formsets.PhysicianSpecialtiesFormFormSet object at 0x7fd70af38a10>>
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做才能在表单中输入正确的内容;表格是一个下拉列表,不可能出错。

def UpdatePhysician(request,id):

physician = get_object_or_404(Physician, id=id)
employee = get_object_or_404(Employee, id=physician.employee.id)
person = get_object_or_404(Person, id=employee.person.id)
try:
    address = get_object_or_404(Address, id=return_id(str(person.addresses.values('id'))))
except:
    address = None
try:
    email = get_object_or_404(Email, id=return_id(str(person.emails.values('id'))))
except:
    email = None
try:
    phone = get_object_or_404(PhoneNumber, id=return_id(str(person.phone_numbers.values('id'))))
except:
    phone = None
try:
    academic_degree = get_object_or_404(AcademicDegree, id=return_id(str(employee.academic_degrees.values('id'))))
    university = get_object_or_404(University, id=return_id(str(employee.academic_degrees.values('university'))))
except:
    academic_degree = None
    university = None

physician_specialties = get_list_or_404(PhysicianSpecialties, employee_academic_degree__employee__pk=physician.employee.id)
for item in physician_specialties:
    print(unicode(item.specialty)) …
Run Code Online (Sandbox Code Playgroud)

python django validation formset

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

Python - 如何将USB(Flash)的内容复制到系统目录

我想要编程的是,

USB驱动器连接到系统中的代码必须自动启动和复制内容(目录,文件等的USB驱动器),以默认的备份目录系统.

我遇到过一些网站,发现我可以使用shutil库 https://docs.python.org/2/library/shutil.html 高级文件操作.我没有使用过Shutil Library,那么有没有其他方法可以实现,

有没有人这样做过所以请帮助.谢谢

python linux shutil python-2.7

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

Django创建没有密码的新用户

我正在使用自定义UserCreationForm创建新用户,然后将auth.views中的password_reset与自定义电子邮件模板一起使用,以向用户发送注册邮件。此过程运行良好,用户能够成功完成注册过程并开始使用该应用程序。我现在想创建用户,而不必为用户设置密码。我尝试按照此处建议的那样在UserCreationForm init方法中将self.fields ['password1']。required和self.fields ['password2']。required设置为False,但这对我不起作用。不幸的是,事实证明调试起来很困难。我没有看到任何错误消息,但是我知道没有调用RegistrationView注册方法。

这是我的UserCreationForm

class UserCreateForm(UserCreationForm):
    email = forms.EmailField(required=True)

    class Meta:
        model = User
        fields = ("email",)

    def __int__(self):
        self.fields['password1'].required = False
        self.fields['password2'].required = False

    def save(self, commit=True):
        user = super(UserCreateForm, self).save(commit=False)
        clean_email = self.cleaned_data["email"]
        user.email = clean_email
        if commit:
            user.save()
        custom_user = CustomUser()
        custom_user.id = user
        custom_user.save()
        return user
Run Code Online (Sandbox Code Playgroud)

这是我的注册视图

class UserRegistration(RegistrationView):
    def __init__(self):
        self.form_class = UserCreateForm
        self.success_url = 'login'
        self.template_name = 'register.html'

    def register(self, request, form):
        new_user = form.save()
Run Code Online (Sandbox Code Playgroud)

我正在使用Django 1.8。请让我知道其他信息是否有用。

python django django-forms

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

Django:无法设置app ready()来导入信号

我正在点击常见的"模型尚未加载"错误,这个错误来自于导入我的应用程序的单独信号文件models.py.我找到了2个关于如何创建AppConfig并在ready()函数中导入信号的简单指南,但我无法使其工作.我正在使用这里的顶部答案以及博客文章.

部分原因可能是因为我的整个项目都有一个名称,funproj并且大部分代码所在的主应用程序被有效地调用app- 我正在使用Visual Studio和Python Tools for VS并且它生成了这个结构当我创建项目时.这是层次结构:

funproj
|--- __init__.py
|--- setttings.py
|--- urls.py
|
|--app
|   |--- __init__.py
|   |--- models.py
|   |--- signals.py
|
|--otherapp
|   |--- __init__.py
|   |--- other stuff
Run Code Online (Sandbox Code Playgroud)

这是缩写,但我已尝试在两者之下放置所需的apps.py相关代码,但两种方法都不起作用.这就是我对每一个人的看法:__init.py__funprojapp

apps.py

from django.apps import AppConfig

class FunProjAppConfig(AppConfig):
  name = 'app'

  def ready(self):
    from app import signals
Run Code Online (Sandbox Code Playgroud)

__init.py__补充

#import signals in the app config
default_app_config = 'app.apps.FunProjAppConfig'
Run Code Online (Sandbox Code Playgroud)

app因为它包含了需要加载的信号,所以有了这个代码对我来说更有意义,但是我链接的例子对我来说并不清楚.一个人提到'app目录',但我不确定这是否真的意味着app,或者他们是否正在使用app作为项目的同义词. …

python django django-signals django-models

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

django:模型和字段在元类中做什么?

我正在关注 trydjango: coding for enterpreneurs 的 django 教程系列,并且对 django 形式的“模型”和“字段”的作用感到困惑。

模型.py

    from django.db import models
    # Create your models here.
    class SignUp(models.Model):
        email=models.EmailField()
        full_name=models.CharField(max_length=55, blank=True, null=True)
        timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
        updated=models.DateTimeField(auto_now_add=False, auto_now=True)

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

表格.py

    from django import forms
    from .models import SignUp

    class SignUpForm(forms.ModelForm):
        class Meta:
            model=SignUp   # ?
            fields=['full_name','email']  # ?

        def clean_email(self):
            email=self.cleaned_data.get('email')
            email_base,provider=email.split("@")
            domain,extension=provider.split(".")
            if not domain == 'USC':
                raise forms.ValidationError("Please make sure you use your USC email")
            if not extension == "edu":
                raise …
Run Code Online (Sandbox Code Playgroud)

python django django-forms

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

django-orm:如何更新一对一关系字段值

models.py

class Area(models.Model):
    area_name = models.CharField(max_length=255, null=False, blank=False)
    description = models.TextField(null=False, blank=False)

class AreaPoint(models.Model):
    x_axis = models.FloatField(default=0.0)
    y_axis = models.FloatField(default=0.0)
    area = models.OneToOneField(Area,primary_key=True,on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)

我尝试了两种方法,但都失败了,请指导我.谢谢

# first method : 
# Area.objects.filter(id=304).update(area_name="today is 1", description="today is 1", areapoint__x_axis=111,areapoint__y_axis=222)
# error : Area has no field named 'areapoint__y_axis'

# second method : 
obj = Area.objects.get(id=304)
print obj.areapoint.x_axis # 277
print obj.areapoint.y_axis # 65
obj.areapoint.x_axis = 100
obj.areapoint.y_axis = 200
print obj.areapoint.x_axis # 100
print obj.areapoint.y_axis # 200
obj.save()
print obj.areapoint.x_axis # 100
print …
Run Code Online (Sandbox Code Playgroud)

python django django-orm

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