作为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)
Ĵ
我正在使用django-social-auth app进行社交日志记录.现在我想从Facebook获取更多信息,如dob,地址等等.在这个我尝试使用设置FACEBOOK_EXTENDED_PERMISSIONS,但它不适合我.请帮助我了解如何使用来自facebook,google和twitter的社交认证获取更多信息
提前致谢
Paritosh
所以,我有一个包含多个值的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
将是之前完成的片数.
实现这个的正确方法是什么?
如何执行的功能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) 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) 我想改变URL评论成功,你将被重定向到Django的职位的时候 - 我宁愿被带到那里的评论已发布到页面上,而不是当前重定向到一个"感谢您的评论"网址.有没有我可以在django中覆盖它的地方?谢谢
我正在寻找一个公式来在一系列单元格上运行COUNTIF(或类似的),并且包含的值是一个日期,以增加计数器 - 基本上类似于:
=COUNTIF(range, if_date())
Run Code Online (Sandbox Code Playgroud)
我无法找到的是对问题的if_date()部分的逻辑测试.有没有办法测试一个单元格来检查它的内容是否是一个日期?
我对django-taggit作为一个在Django中处理标签的应用程序的实现印象深刻.但是,我一直无法找到一种方法来设置可应用于对象的最大标签数 - 如果愿意,则为"MAX_TAG".这可能吗?我想限制我的应用程序,例如,每个对象只有5个标签.
谢谢,
Ĵ
我有一个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 #id
的div
.我为CellCount使用ModelFormSet,它将CellType对象列表作为其初始数据传递.
所以,我有两个感兴趣的列,我希望能够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
但这显然不起作用.有什么指针吗?
我启用了django的评论框架,并且我设置了标记网址:
comments/flag/{{comment.id}}/
Run Code Online (Sandbox Code Playgroud)
注释已注册,并显示在数据库中.但是,它们不会出现在管理界面中.最理想的是在管理界面中为评论'flagged'状态添加过滤器,但我不确定如何做到这一点.
如何通过引用在字典中设置值?
def set(point):
point=0
dic={'pointer':22}
set(dic['pointer'])
print dic # {'pointer': 0}
Run Code Online (Sandbox Code Playgroud)
我必须发一个论点.
django ×7
python ×5
django-forms ×2
excel ×2
dictionary ×1
django-admin ×1
excel-2010 ×1
javascript ×1
neo4j ×1
pointers ×1
py2neo ×1
reference ×1
tags ×1