我正在跟踪exism rust轨迹,并且遇到了一个问题(我对rust非常非常陌生)
\n\n这是一个计算整数的毕达哥拉斯三元组的函数:
\n\nuse std::collections::HashSet;\nuse rayon::prelude::*;\n\npub fn find(sum: u32) -> HashSet<[u32; 3]> {\n let a_b_plus_c: Vec<(u32; 2)> = (1_u32..(sum / 3_u32)).into_par_iter()\n .filter_map(|a| {\n let b_plus_c: u32 = sum - a;\n\n let whole_number_check: Option<u32> = (b_plus_c.pow(2) - a.pow(2)).checked_rem(b_plus_c * 2);\n\n match whole_number_check {\n Some(0) => Some((a, b_plus_c)),\n Some(_) => None,\n None => None,\n }\n }).collect::<Vec<(u32; 2)>>();\n\n a_b_plus_c.into_par_iter().filter_map(|a, b_plus_c| {\n let b: u32 = (b_plus_c.pow(2) - a.pow(2))/(b_plus_c * 2);\n let c: u32 = b_plus_c - b;\n\n match b {\n b …
Run Code Online (Sandbox Code Playgroud) 我有一个标签,显示为一个块.在页面加载时,其宽度通过css 动画从0增加到包含div的某个百分比(小提琴包含MWE,但此div中有多个链接,每个链接具有不同的宽度).在悬停时,我希望它使用CSS 过渡来更改颜色,更改背景颜色,还可以扩展到div的100%.颜色和背景颜色位有效,但似乎忽略了宽度过渡.
片段:
.home-bar {
text-decoration: none;
background-color: white;
color: #5e0734;
display: block;
-webkit-animation-duration: 1.5s;
-webkit-animation-timing-function: ease-out;
-webkit-animation-fill-mode: forwards;
animation-duration: 1.5s;
animation-fill-mode: forwards;
transition: color, background-color, width 0.2s linear;/*WIDTH IGNORED*/
border: 2px solid #5e0734;
overflow: hidden;
white-space: nowrap;
margin-right: 0;
margin-left: 5px;
margin-top: 0;
margin-bottom: 5px;
padding: 0;
}
.home-bar:hover {
background-color: #5e0734;
color: white;
width: 100%;/*WIDTH IGNORED*/
text-decoration: none;
}
#bar0 {
-webkit-animation-name: grow0;
animation-name: grow0;
}
@keyframes grow0 {
from {
width: 0%;
}
to …
Run Code Online (Sandbox Code Playgroud)我正在使用 django rest 框架,并且我有一个通过模型视图集和模型序列化器创建的对象。此视图只能由经过身份验证的用户访问,并且对象应将其“uploaded_by”字段设置为该用户。
我已经阅读了文档,并得出结论,这应该可行
视图集:
class FooViewset(viewsets.ModelViewSet):
permission_classes = [permissions.IsAdminUser]
queryset = Foo.objects.all()
serializer_class = FooSerializer
def get_serializer_context(self):
return {"request": self.request}
Run Code Online (Sandbox Code Playgroud)
序列化器:
class FooSerializer(serializers.ModelSerializer):
uploaded_by = serializers.PrimaryKeyRelatedField(
read_only=True, default=serializers.CurrentUserDefault()
)
class Meta:
model = Foo
fields = "__all__"
Run Code Online (Sandbox Code Playgroud)
但是,这会导致以下错误:
django.db.utils.IntegrityError: NOT NULL constraint failed: bar_foo.uploaded_by_id
Run Code Online (Sandbox Code Playgroud)
这表明序列化程序没有填充“uploaded_by”。
根据我对文档的理解,这应该已将该字段添加到来自序列化程序的验证数据中,作为 create 方法的一部分。
显然我误解了一些东西!
django django-serializer django-rest-framework django-rest-viewsets
文档解释说可以从消费者外部发布到通道层:https : //channels.readthedocs.io/en/latest/topics/channel_layers.html#using-outside-of-consumers 我需要做相反。我有一个相当复杂的 python 脚本,它从 pubnub 读取实时数据,处理它,然后通过 channel_layer 上的组将它推送给消费者。这工作正常,但我需要消费者能够向此脚本宣布他们的存在,以便它可以向他们推送数据(它目前仅在从 pubnub 获取新数据时才推送到通道层,这可能是每 24 小时一次)。
我决定通过让消费者在连接时发布到“在线”频道来解决这个问题。我现在需要 pubnub 源脚本来收听这个频道。我已经尝试将以下内容添加到脚本中,它不再抛出错误,但实际上并没有响应消息。它成功地加入了通道层,但消息处理程序(receive_json)
永远不会触发。
from channels.generic.websocket import JsonWebsocketConsumer
class channelConsumer(JsonWebsocketConsumer):
def __init__(self):
self.channel_name = 'source'
def join(self):
async_to_sync(channel_layer.group_add)('presence', self.channel_name)
def receive_json(self, message):
print("Presence Detected")
# do some stuff
Run Code Online (Sandbox Code Playgroud)
进一步在代码中:
global channel_layer
channel_layer = get_channel_layer()
global listener
listener = channelConsumer()
listener.join()
Run Code Online (Sandbox Code Playgroud)
正如我所说,没有明确的错误,它似乎永远不会触发receive_json。肯定有数据包被发布到“存在”,所以问题肯定在下面的代码中。
我有一个这样定义的变量:
const team = [
{
name: "Foo",
bio: "FooBar",
image: { foo }
},
{
name: "Bar",
bio: "FooBar",
image: { bar }
},
];
Run Code Online (Sandbox Code Playgroud)
像这样导入图像的位置:
import foo from "../assets/foo.jpg";
import bar from "../assets/bar.jpg";
Run Code Online (Sandbox Code Playgroud)
然后将它们传递给要呈现的组件,其中:
<TeamRow team={team} />
The TeamRow component looks like this:
const TeamRow = props => {
const items = props.team.map((item, index) => {
return (
<div className="col-10 col-sm-4 col-md-1 mx-auto text-center">
<div className="row">
<div className="col-12 teamMemberImage">
<img className="img-fluid" src={item.image} />
</div>
</div>
<div className="row">
<div …
Run Code Online (Sandbox Code Playgroud) 我有一个依赖于 google 地图 js api 的 React 组件。这是通过 script 标签导入到 App.js 页面的头部。当我尝试加载包含此组件的页面时,它失败,声称脚本未加载。但是,如果我首先打开另一个页面(这会导致加载脚本,但不包含此组件),然后导航到包含该组件的页面,则它可以工作。
这向我表明问题在于组件加载时脚本尚未加载。不过,我认为页面加载在获取脚本时应该被阻止。我不太确定如何解决这个问题。
应用程序.js:
class App extends Component {
render() {
return (
<Router>
<div>
<Helmet>
<script
type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDSn_vNbNZzrcFxl8bV3MH1j0kuoLVsOCQ&libraries=places"
/>
</Helmet>
<div className="pageContent">
<Route exact path="/foo" component={FooScreen} />
<Route exact path="/bar" component={BarScreen} /
</div>
</div>
</Router>
);
}
}
export default App;
Run Code Online (Sandbox Code Playgroud)
在上面,FooScreen 包含该组件,而 BarScreen 不包含该组件。如果我直接打开 FooScreen,它会失败,如果我打开 BarScreen,然后导航到 FooScreen,它会工作。
我有一个在创建版本时触发的 github 操作。
目标是:
到目前为止,我有这个:
CURRENT_TAG=${{ github.event.release.tag_name }}
PENULTIMATE_TAG=$(git describe --exact-match --tags `git rev-list --tags --max-count=1 --skip=1`)
Run Code Online (Sandbox Code Playgroud)
然后将这些内容回显以进行测试。第一个工作正常,但第二个总是返回空。我在本地尝试了完全相同的命令,它返回第二个最新标签,如预期的那样。
我不知道为什么它在 github 操作中不起作用。为了调试,我删除了该git describe
组件,确认实际上 gitrev-list
没有返回任何内容。
我有一个字典(作为另一个对象的一部分)传递给 django 模板语言。名为 'poll' 的对象具有属性self.text
and self.votes
,其中前者是一个字符串,后者是一个字典。字典看起来像这样:
{'a1': 45.92422502870264, 'a2': 53.50172215843857}
我试图列出每个标签及其附带的编号,使用以下内容:
{% for l, x in poll.votes %}
<p>{{ l }} {{ x }}</p>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
Django 回应
Exception Type: ValueError
Exception Value: Need 2 values to unpack in for loop; got 3.
Run Code Online (Sandbox Code Playgroud)
我试过.iteritems
- 文档解释说这.iteritems
不是正确的方法,但他们没有解释正确的方法是什么。
我有一个反应应用程序,使用托管在 S3 存储桶中的反应路由器,使用 Route53 作为 DNS 提供程序。该应用程序在 Route53 配置指向 S3 存储桶的情况下运行良好。
由于我想使用 SSL,我创建了一个指向存储桶的 Cloudfront 分配,带有 SSL 证书,并将 DNS 指向它。由于这样做,所有链接都无效(example.com 有效,但 example.com/foo 无效)。它只是返回一个 NoSuchKey 错误。我知道这是不正确的,因为钥匙肯定在那里,而且它以前是有效的。
我有一个company
模型,它的每个实例都有一个为admin
用户命名的外键。
我正在编写一个视图以允许公司管理员管理他们的公司:
urls.py
:
path('admin/crn=<company_spec_url>', CompanyAdminView.as_view(), name="CompanyAdminView"),`
Run Code Online (Sandbox Code Playgroud)
views.py
:
class CompanyAdminView(LoginRequiredMixin, UserPassesTestMixin, TemplateView):
template_name = 'company_admin.html'
def test_func(self):
company = Company.objects.filter(crn=context['company_spec_url'])[0]
return company.admin == self.user
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['company'] = Company.objects.filter(crn=context['company_spec_url'])[0]
context['announcements'] = CompanyAnnouncement.objects.filter(company__crn=context['company_spec_url'])
return context
Run Code Online (Sandbox Code Playgroud)
该get_context_data
位工作正常,问题出在test_func
. 显然,应该只允许公司的管理员管理公司,所以我试图进入test_func
,以便对其进行测试。
中的代码test_func
当前不起作用,因为它无法访问context
. 最佳实践是:调用super().get_context_data
一次,并创建context
一个全局变量,以便可以从以下位置访问它test_func
- 调用super().get_context_data
两次,一次输入get_context_data
一次test_func
,或者完全调用其他方法?
我试过查看请求中的 GET dict,但它是空的。我可以test_func
自己解析其中的 url来获取参数,但这似乎不是“正确”的方法。
django ×3
reactjs ×3
amazon-s3 ×1
arrays ×1
css ×1
css3 ×1
django-urls ×1
django-views ×1
git ×1
github ×1
javascript ×1
listener ×1
python ×1
react-helmet ×1
redis ×1
rust ×1
syntax ×1
templates ×1
websocket ×1