当我为chrome扩展添加中间件时,reducers在站点上停止正常工作(但chrome/redux调试工具正常工作)+我在控制台中出现以下错误:
减速器接收的先前状态具有意外类型的"功能".预期参数为具有以下键的对象:"auth","common","home"
这是代码:
import { applyMiddleware, createStore } from 'redux';
import { promiseMiddleware, localStorageMiddleware } from './middleware';
import reducer from './reducer';
const middleware = applyMiddleware(promiseMiddleware, localStorageMiddleware);
const store = createStore(reducer, middleware,
window.devToolsExtension ? window.devToolsExtension() : f => f);
export default store;
Run Code Online (Sandbox Code Playgroud)
如果我删除铬部分:
,window.devToolsExtension ? window.devToolsExtension() : f => f
Run Code Online (Sandbox Code Playgroud)
如果再次正常工作.
当使用带有phantomjs的代理时,它使用默认的python用户代理.
在ubuntu 14.04上运行:Python 3.5.1
service_args = []
if self.proxy:
service_args.extend([
'--proxy={}:{}'.format(self.proxy.host, self.proxy.port),
'--proxy-type={}'.format(self.proxy.proto),
])
if self.proxy.username and self.proxy.password:
service_args.append(
'--proxy-auth={}:{}'.format(self.proxy.username, self.proxy.password)
)
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = (
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/53 "
"(KHTML, like Gecko) Chrome/15.0.87"
)
self.webdriver = webdriver.PhantomJS(service_args=service_args, desired_capabilities=dcap)
Run Code Online (Sandbox Code Playgroud)
并且错误:
消息:错误消息=>'无法找到带有css选择器的元素'#navcnt td.cur''由Request => {"headers"引起:{"接受":"application/json","Accept-Encoding":"同一性", "连接": "关闭", "内容长度": "105", "内容类型": "应用/ JSON;字符集= UTF-8", "主机": "127.0.0.1:39281" ,"User-Agent":"Python-urllib/3.5" } ...
在类似的问题中得出结论,问题是由代理提供商通过在服务器级别设置用户代理引起的,但是我怀疑这是因为我可以使用带有chrome的代理修改它.
ab = %{a: 1}
ac = %{"a" => 1}
Run Code Online (Sandbox Code Playgroud)
究竟有什么区别?为什么Poison.decode!返回格式#2(我需要#1与Ecto.Changeset.change一起使用).
Json响应来自API,看起来像
[{"a":3}]
Run Code Online (Sandbox Code Playgroud) 我正在努力修改Material-UI @ next(v1)中的按钮颜色.
我如何将muitheme设置为与bootstrap相似,所以我可以使用"btn-danger"表示红色,"btn-success"表示绿色...?
我尝试使用自定义className但它无法正常工作(悬停颜色不会改变),它似乎重复.我有什么选择?
我在vagrantfile中有这个:
config.vm.synced_folder ".", "/vagrant",
type: "rsync", rsync__auto: true, rsync__exclude: [".git/", "django/"]
Run Code Online (Sandbox Code Playgroud)
+我vagrant rsync-auto在单独的标签中运行.
在对文件进行更改后,需要使用vagrant~5s来获取它并进行rsync.
无论如何加快这个速度?我用它来进行webpack/hot-module-reloading.
我无法使用ecto更新嵌套设置,我得到"无变化"变更集或错误.移民:
def change do
create table(:trees) do
...
add :settings, :map
Run Code Online (Sandbox Code Playgroud)
设置如下:
defmodule Final.TreeSettings do
use Ecto.Schema
embedded_schema do
...
field :columns, :map
timestamps
end
end
Run Code Online (Sandbox Code Playgroud)
注意嵌套列映射.
我可以轻松地插入新的Tree行:
changeset = Tree.changeset(%Tree{}, %{user_id: user_id, name: x})
|> Ecto.Changeset.put_embed(:settings, treeSettings)
Run Code Online (Sandbox Code Playgroud)
但以相同的方式更新它不起作用:
get_tree = Repo.one! from p in Tree, where: p.name == ^tree["name"], where: p.user_id == ^user_id
settingss = get_tree.settings
settingss = Kernel.update_in(settingss.columns[tree["setting"]][tree["type"]], fn x -> "asdasd" end)
# IO.inspect(settingss) shows correct changes here.
changeset =
get_tree
|> Ecto.Changeset.change
|> Ecto.Changeset.put_embed(:settings, settingss)
IO.inspect …Run Code Online (Sandbox Code Playgroud) I am using get_or_create to insert objects to database but the problem is that doing 1000 at once takes too long time.
I tried bulk_create but it doesn't provide functionality I need (creates duplicates, ignores unique value, doesn't trigger post_save signals I need).
甚至可以通过自定义的SQL查询批量进行get_or_create吗?
这是我的示例代码:
related_data = json.loads(urllib2.urlopen(final_url).read())
for item in related_data:
kw = item['keyword']
e, c = KW.objects.get_or_create(KWuser=kw, author=author)
e.project.add(id)
#Add m2m to parent project
Run Code Online (Sandbox Code Playgroud)
related_data包含1000行,如下所示:
[{"cmp":0,"ams":3350000,"cpc":0.71,"keyword":"apple."},
{"cmp":0.01,"ams":3350000,"cpc":1.54,"keyword":"apple -10810"}......]
Run Code Online (Sandbox Code Playgroud)
KW模型还会发送我用来创建另一个父模型的信号:
@receiver(post_save, sender=KW)
def grepw(sender, **kwargs):
if kwargs.get('created', False):
id …Run Code Online (Sandbox Code Playgroud) 这是代码:
models = [Url1, Url2, Url3, Url4, Url5, Url6, Url7, Url8, Url9, Url10]
d = defaultdict(list)
for model in models:
getids = model.objects.values_list('keyword', 'score')
for kw, score in getids:
d[kw].append(score)
Run Code Online (Sandbox Code Playgroud)
这使'd'输出:
defaultdict(<type 'list'>, {198: [-70, 0, 5, -70, 5, 5, 0, 0, -50, -70],
199: [0, -70, -70, -70, -70, -70, -100, -70, -70, -70]})
Run Code Online (Sandbox Code Playgroud)
如何让它返回:
defaultdict({198: -245, 199: -660}) #sum of all numbers inside lists, returned as values to both keys.
Run Code Online (Sandbox Code Playgroud)
我尝试循环但是deafultdict似乎不像普通列表那样工作.
我试图在模型中调用这个覆盖保存方法:
def save(self, *args, **kwargs):
if self.done is True:
if self.averagepa is None:
pass
elif self.averagepa < 26:
self.links = 5
elif self.averagepa < 31:
self.links = 10
elif self.averagepa < 36:
self.links = 15
elif self.averagepa < 41:
self.links = 20
else:
self.links = 99
super(KW, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
如果我只是在管理面板中保存模型,这非常有效.但是,当我尝试通过./manage.py shell这样更新它:
KW.objects.filter(id=138).update()
Run Code Online (Sandbox Code Playgroud)
它不会触发它.如何通过shell更新调用保存覆盖方法?
试图复制trello示例,无法使变更集与foreignkeys一起使用:
移民:
defmodule Final.Repo.Migrations.CreateKw do
use Ecto.Migration
def change do
create table(:kw) do
add :keyo_id, references(:keyo), null: false
add :users_id, references(:users), null: false
timestamps
end
create index(:kw, [:keyo_id])
create index(:kw, [:users_id])
create unique_index(:kw, [:keyo_id, :users_id])
end
end
Run Code Online (Sandbox Code Playgroud)
模型:
defmodule Final.Kw do
use Final.Web, :model
alias Final.Repo
schema "kw" do
belongs_to :keyo, Final.Keyo
belongs_to :user, Final.User
timestamps
end
@required_fields ~w(keyo_id users_id)
@optional_fields ~w()
def changeset(model, params \\ :empty) do
model
|> cast(params, @required_fields, @optional_fields)
end
end
Run Code Online (Sandbox Code Playgroud)
完整错误:
**(ArgumentError)未知字段
users_id(请注意,变更集中仅支持字段,嵌入,belongs_to,has_one和has_many关联)
导致它的命令: …
假设我们有这样的地图:
%{"a": %{"b": 2, "c":5}, "d": 1}
Run Code Online (Sandbox Code Playgroud)
elixr 中是否有类似的函数(js 回答同一问题)?
最终结果应该是:
%{"a.b": 4, "a.c":5, "d": 1}
Run Code Online (Sandbox Code Playgroud) 所以现在我正在使用这个:
dynamic(
[u],
ilike(
u.name, ^"%#{String.replace(term, "%", "\\%")}%"
)
)
Run Code Online (Sandbox Code Playgroud)
该术语是一个简单的字符串,例如"charlie"。我如何将其与术语列表一起使用,例如:["charlie", "dennis", "frank"]- 没有片段是否可能?
elixir ×5
ecto ×3
python ×3
django ×2
javascript ×1
material-ui ×1
phantomjs ×1
postgresql ×1
react-redux ×1
reactjs ×1
redux ×1
rsync ×1
sql ×1
vagrant ×1