小编jvc*_*c26的帖子

Django:如何在验证之前将数据添加到ModelForm子类中?

作为Django中表单验证的一部分,我想检查用户上次发布信息的时间。

我已经看过这个了这个关于stackoverflow的问题似乎解决了这个问题,并在这里最初使用了公认的答案。从本质上讲,目前的过程是在请求过程中添加request.user对象。

def form_valid(self, form):
Run Code Online (Sandbox Code Playgroud)

CreateView子类的方法。但是,这不允许在表单验证期间使用用户变量。

由于我想在验证期间访问用户变量,因为自上次发布以来的检查时间在逻辑上是验证,所以我需要将用户变量更早地注入表单。

我试过改变get_initial()方法:

def get_initial(self):
    initial = super(ArticleCreateView, self).get_initial()
    initial['user'] = self.request.user
    return initial
Run Code Online (Sandbox Code Playgroud)

这样可以成功地在初始字典中设置['user']键,但是却无法使其通过清理过程,清理过程仅处理['data']字典中的内容,并删除初始的任何内容。我故意将用户从表单显示中排除,但这似乎也将其从清洁过程和验证中删除。

是这样做的正确方法是重写Form 的init()方法和视图的get_initial()方法,将“ user”放入初始,然后在表单中将额外的信息从初始移到init()?

我希望将request.user传递给表单,然后可以在整个表单范围内的clean()方法中访问它以进行额外的检查,这相当于验证。

def clean(self):
    super(ArticleForm, self).clean()
    **check whether user has posted recently, if so, raise ValidationError**
    return self.cleaned_data
Run Code Online (Sandbox Code Playgroud)

Ĵ

python django django-forms

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

Django social-auth:从Facebook获取出生日期,地址和更多字段

我正在使用django-social-auth app进行社交日志记录.现在我想从Facebook获取更多信息,如dob,地址等等.在这个我尝试使用设置FACEBOOK_EXTENDED_PERMISSIONS,但它不适合我.请帮助我了解如何使用来自facebook,google和twitter的社交认证获取更多信息

提前致谢

Paritosh

django django-socialauth

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

如何通过在Javascript中循环从数组中删除多个项目

所以,我有一个包含多个值的javascript数组:

var keymap = {'name': 'foobaz', 
              'mappings': [{'id': 1, 'key': 'b'},
                          {'id': 2, 'key': 'c'},
                          {'id': 3, 'key': 'd'},
                          {'id': 1, 'key': 'e'},
                          {'id': 10, 'key': 'f'},
                          {'id': 7, 'key': 'g'},
                          {'id': 1, 'key': 'h'}]
}
Run Code Online (Sandbox Code Playgroud)

我想删除键为'b'的任何条目.请注意,ID对应于后端ID.我想要做的是删除一些映射(例如,所有的'id'为'1').

我试过的是:

for (var i = 0; i < keymap['mappings'].length; i++) {
    if (keymap['mappings'][i]['id'] === id_to_match) {
        keyboard_map['mappings'].splice(i, 1);
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,切片将改变就地数组的索引,因此现在i不会指向正确的指数点(如任何指标较高,现在将i-n在那里n将是之前完成的片数.

实现这个的正确方法是什么?

javascript

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

Cypher在py2neo中查询

如何执行的功能shortestPath(),并allShortestPaths()在py2neo?

在Cypher中,我会执行以下操作:

START beginning=node(4), end=node(452)
MATCH p = shortestPath(beginning-[*..500]-end)
RETURN p
Run Code Online (Sandbox Code Playgroud)

我已经尝试了我认为是等效的(下面),但这不起作用(这些关系在cypher中工作,而node_*对象确实是正确的节点

>>> rels = list(graph_db.match(start_node=node_4, end_node=node_452))
>>> rels
[]
Run Code Online (Sandbox Code Playgroud)

python neo4j py2neo

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

Custom field in Django get_prep_value() has no effect

So, I've made a similar class to this answer. It looks like:

class TruncatingCharField(models.CharField):
    description = _("String (truncated to %(max_length)s)")

    def get_prep_value(self, value):
        value = super(TruncatingCharField, self).get_prep_value(value)
        if value:
            value = value[:self.max_length]
        return value
Run Code Online (Sandbox Code Playgroud)

I would expect that instantiating a model with this field with strings longer than the threshold should trigger truncation. However this appears not to be the case:

class NewTruncatedField(models.Model):
    trunc = TruncatingCharField(max_length=10)


class TestTruncation(TestCase):

    def test_accepted_length(self):
        trunc = 'a'*5
        obj = NewTruncatedField(trunc=trunc)
        self.assertEqual(len(obj.trunc), 5)

    def …
Run Code Online (Sandbox Code Playgroud)

django django-models

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

Django评论改变了成功网址

我想改变URL评论成功,你将被重定向到Django的职位的时候 - 我宁愿被带到那里的评论已发布到页面上,而不是当前重定向到一个"感谢您的评论"网址.有没有我可以在django中覆盖它的地方?谢谢

python django django-comments

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

Excel公式:计算值为日期的单元格

我正在寻找一个公式来在一系列单元格上运行COUNTIF(或类似的),并且包含的​​值是一个日期,以增加计数器 - 基本上类似于:

=COUNTIF(range, if_date())
Run Code Online (Sandbox Code Playgroud)

我无法找到的是对问题的if_date()部分的逻辑测试.有没有办法测试一个单元格来检查它的内容是否是一个日期?

excel excel-formula

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

如何限制对象在django-taggit中可以拥有的最大标记数?

我对django-taggit作为一个在Django中处理标签的应用程序的实现印象深刻.但是,我一直无法找到一种方法来设置可应用于对象的最大标签数 - 如果愿意,则为"MAX_TAG".这可能吗?我想限制我的应用程序,例如,每个对象只有5个标签.

谢谢,

Ĵ

python tags django django-taggit

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

Django formset访问模板中的初始数据

我有一个Django formset,其中包含一组初始数据,它将一个foreignkey关系对象加载到初始形式:

{{ cellcountformset.management_form }}
{% for form in cellcountformset %}
<div id="">
    {{ form.errors }}
    {{ form.as_p }}
</div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

相关模型如下所示:

class CellType(models.Model):
    readable_name = models.CharField(max_length=50)
    machine_name = models.CharField(max_length=50)
    comment = models.TextField(blank=True)

class CellCount(models.Model):
    cell_count_instance = models.ForeignKey(CellCountInstance)
    cell = models.ForeignKey(CellType)
    normal_count = models.IntegerField()
    abnormal_count = models.IntegerField()
    comment = models.TextField(blank=True)
Run Code Online (Sandbox Code Playgroud)

我希望能够以显示由CellCount模型作为的小区属性称为小区的不同machine_name #iddiv.我为CellCount使用ModelFormSet,它将CellType对象列表作为其初始数据传递.

django django-templates django-forms

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

Excel COUNTIFS公式匹配'not'x

所以,我有两个感兴趣的列,我希望能够COUNTIFS在其中,这类数据的示例如下.

Stage | Revasc
I     |   N
II    |   N
I     |   CABG
III   |   PCI
AE    |   CABG+PCI
Run Code Online (Sandbox Code Playgroud)

我想把它们算作两个变量,一个带revasc的数字和没有数字的数字,但我能想到的最简单的方法是:

COUNTIFS(A2:A6, "I", B2:B6, "NOT N")
Run Code Online (Sandbox Code Playgroud)

但我找不到如何NOT在excel公式中表示.在通常的正则表达式中它会是,!N但这显然不起作用.有什么指针吗?

excel excel-formula excel-2010

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

如何管理django中的注释标志

我启用了django的评论框架,并且我设置了标记网址:

comments/flag/{{comment.id}}/
Run Code Online (Sandbox Code Playgroud)

注释已注册,并显示在数据库中.但是,它们不会出现在管理界面中.最理想的是在管理界面中为评论'flagged'状态添加过滤器,但我不确定如何做到这一点.

django django-admin django-comments

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

Python:通过键的指针获取或设置字典中的值

如何通过引用在字典中设置值?

def set(point):
    point=0

dic={'pointer':22}
set(dic['pointer'])

print dic   # {'pointer': 0}
Run Code Online (Sandbox Code Playgroud)

我必须发一个论点.

python dictionary pointers reference

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