小编Sta*_*eez的帖子

django.db.utils.OperationalError:(1071,'指定密钥太长;最大密钥长度为767字节')

我的模特:

class Course(models.Model):
    language = models.ForeignKey(Language)
    name = models.CharField(max_length=50, unique=True, default='course')
    title = models.CharField(max_length=1024, default='no title')
    foreign_title = models.CharField(max_length=1024, default='no title', blank=True)
    header = models.CharField(max_length=1024, default='', blank=True)
    description = models.TextField(null=True, blank=True)

    def __str__(self):
        return self.title

    def __unicode__(self):
        return u'%s' % self.title
Run Code Online (Sandbox Code Playgroud)

我添加"unique_together":

class Course(models.Model):
    language = models.ForeignKey(Language)
    name = models.CharField(max_length=50, unique=True, default='course')
    title = models.CharField(max_length=1024, default='no title')
    foreign_title = models.CharField(max_length=1024, default='no title', blank=True)
    header = models.CharField(max_length=1024, default='', blank=True)
    description = models.TextField(null=True, blank=True)

    class Meta:
        unique_together = ['language', 'name', 'title']

    def …
Run Code Online (Sandbox Code Playgroud)

python database django migrate mariadb

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

django-registration(1048,"Column'last_login'不能为null")

我正在尝试在我的简单项目中使用django-registration.

settings.py

# DJANGO REGISTRATION
ACCOUNT_ACTIVATION_DAYS = 7
AUTH_USER_EMAIL_UNIQUE = True
EMAIL_HOST = 'localhost'
EMAIL_PORT = 1025
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
EMAIL_USE_TLS = False
DEFAULT_FROM_EMAIL = 'example@gmail.com'
Run Code Online (Sandbox Code Playgroud)

urls.py

url(r'^accounts/', include('registration.backends.hmac.urls')),
Run Code Online (Sandbox Code Playgroud)

注册模板:

{% extends "index.html" %}
{% block content %}
<h1>Registration</h1>
<form method="post" action="">
    {% csrf_token %}
    <dl class="register">
    {% for field in form %}
        <dt>{{ field.label_tag }}</dt>
        <dd class="clearfix">{{ field }}
        {% if field.help_text %}<div class="clearfix">{{ field.help_text }}</div>{% endif %}
        {% if field.errors %}<div class="myerrors clearfix">{{ field.errors }}</div>{% …
Run Code Online (Sandbox Code Playgroud)

python django django-registration django-1.9

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

即使禁用排序,也会显示第一列的排序箭头

我需要使用DataTable pligin在表中添加"全选"复选框.我没有为此找到标准方法,我手动使用添加.好的,但是如果我尝试使用本地化('语言'属性),我的"全选"复选框就会消失.我尝试修复是通过在DataTable库中添加我的代码,但这是不好的方法.

  <table id="devices" class="table table-striped table-bordered" cellspacing="0" width="100%">
    <thead>
      <tr>
        <th style="padding:8px; text-align:center;">        
                <input type='checkbox' class='minimal check-all' id='check-all-device' name='check-all-device'></input>

        </th>
        <th>{% trans "STATUS" %}</th>
        <th>{% trans "DEVICE NAME" %}</th>
        <th>{% trans "ACTIONS" %}</th>
        <th></th>
      </tr>
    </thead>

    <tfoot>
        <tr>
            <th></th>
            <th>{% trans "STATUS" %}</th>
            <th>{% trans "DEVICE NAME" %}</th>
            <th>{% trans "ACTIONS" %}</th>
            <th></th>
        </tr>
    </tfoot>

    <tbody id="devices-table-rows">
      {% for device in object_list %}
        {% include "device_add_row.html" %}
      {% endfor %}
    </tbody>
  </table>
Run Code Online (Sandbox Code Playgroud)

在javascript上添加选择处理程序:

devicesTable = $('#devices').DataTable({
    // disable sorting …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery datatables icheck

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

如何使用 mongoengine 连接到 mongodb-cluster

我正在使用复制和分片构建 mongodb-cluster。我设置了基于 x509 的身份验证。我通过 mongo 连接到数据库(mongos):

mongo admin --ssl --sslCAFile mongoCA.pem \
--sslPEMKeyFile client.pem -u user -p password --host my.host.com --port 27017
Run Code Online (Sandbox Code Playgroud)

如何使用 mongoengine 连接到集群?

我没有找到方法register_connection的连接选项的描述:

def register_connection (alias, name = None, host = None, port = None,
                         read_preference = READ_PREFERENCE,
                         username = None, password = None, authentication_source = None,
                         ** Kwargs):
Run Code Online (Sandbox Code Playgroud)

例如 PyMongo 提供了必要的选项http://api.mongodb.com/python/current/examples/authentication.html#mongodb-x509但我需要在现有代码中使用 mongoengine 。

python database-connection mongodb x509 mongoengine

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

Django两个自我引用的外键

在Django 1.7中编写一个简单的应用程序.是表示链接列表元素的模型:

class TrainingUserWordSetItem(models.Model):
    training_set = models.ForeignKey(TrainingUserWordSet)
    user_word = models.ForeignKey(UserWord)
    prev_item = models.ForeignKey("TrainingUserWordSetItem", null=True, default=None)
    next_item = models.ForeignKey("TrainingUserWordSetItem", null=True, default=None)
Run Code Online (Sandbox Code Playgroud)

迁移时我收到错误:

hellodict.TrainingUserWordSetItem.next_item: (fields.E304) Reverse accessor for 'TrainingUserWordSetItem.next_item' clashes with reverse accessor for 'TrainingUserWordSetItem.prev_item'.
        HINT: Add or change a related_name argument to the definition for 'TrainingUserWordSetItem.next_item' or 'TrainingUserWordSetItem.prev_item'.
hellodict.TrainingUserWordSetItem.prev_item: (fields.E304) Reverse accessor for 'TrainingUserWordSetItem.prev_item' clashes with reverse accessor for 'TrainingUserWordSetItem.next_item'.
        HINT: Add or change a related_name argument to the definition for 'TrainingUserWordSetItem.prev_item' or 'TrainingUserWordSetItem.next_item'.
Run Code Online (Sandbox Code Playgroud)

如何使两个自我指涉的外键领域?

更新:

帮助使用related_name ='+':

class TrainingUserWordSetItem(models.Model):
    training_set …
Run Code Online (Sandbox Code Playgroud)

python django django-1.7

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

按 nginx 中的位置提供 pdf 文件

我如何提供文件:

'/webapps/app/static/downloads/privacy_policy.pdf'
Run Code Online (Sandbox Code Playgroud)

按地址:

https://my.site.net/privacy/
Run Code Online (Sandbox Code Playgroud)

我尝试在我的 nginx 中使用位置,但这不起作用:

location /privacy/ {
   alias /webapps/app/static/downloads/privacy_policy.pdf;
}
Run Code Online (Sandbox Code Playgroud)

pdf location nginx

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

Django Rest框架获取或创建PrimaryKeyRelatedField

我开始使用 Django 和 Django Rest 框架为我的 Web 应用程序创建 REST API,我需要一个逻辑问题。

有实体指令和标签。用户访问我的服务并创建自我指令并为其添加现有标签或新标签。

我使用 PrimaryKeyRelatedField 来创建关系指令<->标签的模型序列化器类。但是,如果我对带有新标签的新指令进行 POST,则会收到错误:“无效的 pk \"tagname\" - 对象不存在。” 。我通过重写字段类中的to_internal_value方法解决了这个问题。

解决这个问题的最佳实践是什么?在我看来,这个问题对于 Web 和 REST API 来说是典型的。

我的模型:

class Tag(Model):
    name = CharField(max_length=32, verbose_name=_("Name"),
                     unique=True, validators=[alphanumeric], primary_key=True)

    def __str__(self):
        return self.name


class Instruction(Model):
    user = ForeignKey(settings.AUTH_USER_MODEL,
                      related_name='instructions',
                      on_delete=CASCADE,
                      blank=False, null=False,
                      verbose_name=_("User"))
    title = CharField(max_length=256,
                      verbose_name=_("Title"),
                      blank=False, null=False)
    created_datetime = DateTimeField(verbose_name=_("Creation time"), editable=False)
    modified_datetime = DateTimeField(
        verbose_name=_("Last modification time"), blank=False, null=False)
    tags = ManyToManyField(Tag,
                           related_name="instructions",
                           verbose_name=_("Tags"))

    class Meta:
        ordering = …
Run Code Online (Sandbox Code Playgroud)

tags django rest relationship django-rest-framework

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

使用正则表达式检查以逗号分隔的代码字符串是否包含给定的代码

我尝试使用正则表达式解决我的任务。

鉴于:

字符串,用逗号分隔

" 1004, 1001 , 11004, 1002, 1003, 1004 ,  1005,ABC100,10041,ABC102, 1004 "
Run Code Online (Sandbox Code Playgroud)
  • 字符串可以包含数字/字符串/混合代码。
  • 节点之间以逗号分隔。
  • 逗号和代码之间可以有空格。

要检查的代码。例如:

"1004"
Run Code Online (Sandbox Code Playgroud)

目标:

需要确保给定的代码包含在源字符串中。

我准备了一个丑陋的模式,但它可以工作:

(?:,|^)[ ]*1004[ ]*(?=,)|(?<=,)[ ]*1004[ ]*(?:,|$)|^[ ]*1004[ ]*$
Run Code Online (Sandbox Code Playgroud)

https://regex101.com/r/4IEi42/1

是否可以在模式中一次使用代码来简化它?谢谢!

regex

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