小编Mo *_*abi的帖子

Django模型i18n的内容

在我的设计中,有些模型需要以不同的语言存储某些字段.以前做过吗?我看到一些Django模块有助于进行模型转换,但其中一些模块无法正常工作.

那里有最好的做法吗?以下是我的代码.

我的模特,

class Lookup_I18n(models.Model):
    i18n_code = models.CharField(max_length=5, default=settings.LANGUAGE_CODE)
    value = models.CharField(max_length=300)

class Lookup(models.Model):

    purpose = models.CharField(max_length=10)
    key = models.CharField(max_length=10)
    value_i18n = models.ForeignKey(Lookup_I18n)
    value = models.Field()

    class Meta:
        unique_together = (('purpose', 'key'),)
Run Code Online (Sandbox Code Playgroud)

python django localization django-models internationalization

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

没有完整路径的python tarfile

我做了一个如下的小脚本来读取文件组并对它们进行tar,它的工作正常,接受压缩文件包含未压缩时文件的完整路径.没有目录结构有没有办法做到这一点?

compressor = tarfile.open(PATH_TO_ARCHIVE + re.sub('[\s.:"-]+', '', 
    str(datetime.datetime.now())) + '.tar.gz', 'w:gz')

for file in os.listdir(os.path.join(settings.MEDIA_ROOT, PATH_CSS_DB_OUT)):
    compressor.add(os.path.join(settings.MEDIA_ROOT, PATH_CSS_DB_OUT) + file)

compressor.close()
Run Code Online (Sandbox Code Playgroud)

python django tar

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

Django管理员字段验证返回错误不会在应用程序中引发异常

我有一个Django模型,它有一个图像的上传字段,我试图在存储之前验证图像字段以检查图像大小,并返回优雅的错误消息供用户纠正.

我试图使用以下代码,但它没有用

admin.py

class BonanzaAdmin(TranslatableAdmin):
    list_display = ['get_bonanza_name', 'user_profile', 'publish_date', 'created_by', 'created_at', 'all_translations']

    def clean_image(self):

        image = self.cleaned_data.get('image')
        if not image:
            raise forms.ValidationError("No image!")
        else:
            w, h = get_image_dimensions(image)
            if w != 1170:
                raise forms.ValidationError("The image is %i pixel wide. It's supposed to be 1170px" % w)
            if h != 500:
                raise forms.ValidationError("The image is %i pixel high. It's supposed to be 500px" % h)
        return image 


    def save_model(self, request, obj, form, change):
        if not change:
            obj.created_by = request.user
        obj.save() …
Run Code Online (Sandbox Code Playgroud)

django django-admin django-nani django-hvad

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

使用RSpec测试多个Docker映像

免责声明:ruby和rspec非常新

我一直在尝试使用docker镜像作为我们不同项目的基础镜像构建私有仓库。我们还尝试将测试多个docker映像作为测试套件的一部分。

尽管我们有奇怪的问题rspec,但似乎测试在错误的docker计算机上运行。

当前,我们在单独的文件夹中有两个docker映像

.
??? Dockerfile
??? Gemfile
??? Gemfile.lock
??? Jenkinsfile
??? README.md
??? Rakefile
??? nodejs
?   ??? 7.0
?   ?   ??? Dockerfile
?   ?   ??? README.md
?   ?   ??? spec
?   ?       ??? image_spec.rb
?   ??? README.md
??? python
?   ??? 2.7
?   ?   ??? Dockerfile
?   ?   ??? README.md
?   ?   ??? docker-entrypoint.sh
?   ?   ??? requirements.txt
?   ?   ??? spec
?   ?       ??? image_spec.rb
?   ??? README.md
??? spec
    ??? spec_helper.rb
Run Code Online (Sandbox Code Playgroud)

这基本上是我们当前使用的结构,我们 …

rspec docker

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

使用PHP-SDK进行Facebook身份验证

我已经尝试了几天没有运气,我设法使用PHP-SDK附带的example.php并且工作得很好.我只需要存储返回的会话并在以后使用它,这样我就可以访问而无需重新进行身份验证.

我尝试将会话存储在数据库中的序列化字段中,然后恢复数据,反序列化并使用php-sdk中的setSession函数来检索身份验证.不幸的是,这不起作用,

以下是使用代码示例的上一个问题的链接..

Facebook OAuth根据存储的会话检索信息

请指教?

php facebook oauth

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

使用外键继承抽象类时出错

我有以下代码用django编写

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

class AuditColumns(models.Model):
    created_at=models.DateField("Created at")
    created_by=models.ForeignKey(User, db_column="created_by", related_name="poll_user_created_by")
    updated_at=models.DateTimeField("Updated at")
    updated_by=models.ForeignKey(User, db_column="updated_by", null=True, related_name="poll_user_updated_by")
    class Meta:
        abstract = True


class Poll(AuditColumns):
    question=models.CharField(max_length=300)
    start_poll_at=models.DateTimeField(null=True)
    end_poll_at=models.DateTimeField(null=True)
    is_active=models.BooleanField(default=True)


class Choice(AuditColumns):
    choice=models.CharField(max_length=200)
Run Code Online (Sandbox Code Playgroud)

当我执行此代码时,我收到以下错误

mo@debian:~/PycharmProjects/KlamTam$ ./manage.py sql polls
Error: One or more models did not validate:
polls.poll: Accessor for field 'created_by' clashes with related field 'User.poll_user_created_by'. Add a related_name argument to the definition for 'created_by'.
polls.poll: Reverse query name for field 'created_by' clashes with related field 'User.poll_user_created_by'. …
Run Code Online (Sandbox Code Playgroud)

python django

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

bootstrap accordian不与IE合作

我一直在使用bootstrap的网站上工作,我使用了手风琴(Collapse)JavaScript功能.

它与所有浏览器一起工作,除了IE之外没有.

http://bonanza.mocorner.com/en/success_story/

以上网址,如果使用FF或Chrome访问,您可以看到手风琴正常工作.当使用IE时,没有任何想法?虽然我在HTML标题中包含以下内容

<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
  <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

下面是我的HTML代码

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" >
<head>
    <meta charset="utf-8">


    <!-- CSS Styling starts here -->
    <link rel="stylesheet" type="text/css" href="/public_assets/bootstrap/css/bootstrap.min.css" />
    <link rel="stylesheet" type="text/css" href="/public_assets/bootstrap/css/bootstrap-responsive.min.css" />
    <link rel="stylesheet" type="text/css" href="/public_assets/base.css" />
    <!-- CSS Styling ends here -->

    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->


    <!-- JS …
Run Code Online (Sandbox Code Playgroud)

internet-explorer twitter-bootstrap

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

PostgreSQL PL/pgSQL值的数组随机值

如何使用两个或三个值声明一个类似变量的数组,并在执行期间随机获取它们?

a := [1, 2, 5] -- sample sake
select random(a) -- returns random value
Run Code Online (Sandbox Code Playgroud)

有什么建议从哪里开始?

arrays random postgresql plpgsql postgresql-9.2

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

启用Django语言环境的应用程序在调试关闭时始终返回404

我一直在开发一个在根/登陆页面中使用i18n/locale作为url前缀的应用程序.我尝试早期部署我的应用程序以进行测试,DEBUG = True,一切都运行良好.如果尝试访问domain.com,则会重定向到domain.com/en/

现在,因为我禁用了DEBUG = False,它不会重定向到/ en /,而是会显示404错误.

我看到了这个问题,这与我的情景很接近

Django 1.4 LocaleMiddleware不能与Apache一起使用,但可以与runserver一起使用

但是,对于我的情况,我已经有404页面设置及其处理程序和404.html文件.

以下是我的代码

settings.py

LANGUAGE_CODE = 'en-us'
ADMIN_LANGUAGE_CODE = LANGUAGE_CODE

gettext = lambda s: s

LANGUAGES = (
    ('ar', gettext('Arabic')),
    ('en', gettext('English')),
)

USE_I18N = True

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'apps.accounts.middleware.AccountSocialAuthExceptionMiddleware',
    'apps.core.middleware.DefaultSiteMiddleware',
    #    'debug_toolbar.middleware.DebugToolbarMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

TEMPLATE_CONTEXT_PROCESSORS = (

    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.request",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django.core.context_processors.static",
    "django.core.context_processors.tz",
    "django.contrib.messages.context_processors.messages",
    # custom context processors
    "snowflake.apps.core.context_processors.project_name",
    "snowflake.apps.core.context_processors.sites",


) …
Run Code Online (Sandbox Code Playgroud)

django django-1.5

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

强制谷歌通过python社会认证刷新令牌

我们正在开发一个依赖于PSA(0.2.1)的项目,用于使用google oauth2(离线)进行身份验证.不知怎的,我们失去了一些用户的刷新令牌,我们想强制这些用户重新认证,这样我们就可以从谷歌获得新的刷新令牌

我们都试过了:

  1. Diconnect使用/ diconnect /谷歌的oauth2的用户,我们得到了一个NotAllowedToDisconnect例外,甚至删除后social.pipeline.disconnect.allowed_to_disconnect从SOCIAL_AUTH_DISCONNECT_PIPELINE,我们有没有异常,但是当用户重新认证,有在谷歌的反应没有refreh_token
  2. 将approval_prompt = force添加到'account:social:begin'url,但不返回refresh_token

任何想法都将受到高度赞赏.

更新:我们尝试使用{% url 'account:social:begin' 'google-oauth2' %}?approval_prompt=force&next=/强制某些用户(缺少令牌)的approval_prompt,但它似乎对google oauth没有任何影响.

谢谢

django oauth-2.0 google-oauth python-social-auth

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