使用以下HTML:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../../../favicon.ico">
<title>Starter Template for Bootstrap</title>
<!-- Bootstrap core CSS -->
<link
rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css"
integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb"
crossorigin="anonymous">
<!-- jQuery libraries -->
<script
src="https://code.jquery.com/jquery-3.2.1.min.js"
integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
crossorigin="anonymous"></script>
<script
src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"
integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU="
crossorigin="anonymous"></script>
<!-- Custom styles -->
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
</head>
<body>
<nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse …Run Code Online (Sandbox Code Playgroud) 我有一个API,向我发送的字段名与我的模型中的字段名不匹配(并且我无法控制),并且正在尝试在序列化器中映射它们,但是由于某种原因,当我实际实现此方法时:
class UserSerializer(serializers.ModelSerializer):
email = serializers.EmailField(source='customer_email')
first_name = serializers.CharField(source='first name')
last_name = serializers.CharField(source='last name')
address = serializers.CharField(source='customer_address')
phone = serializers.CharField(source='customer_phone')
messenger_id = serializers.IntegerField(source='messenger user id')
class Meta:
model = User
fields = ('id', 'url', 'email', 'first_name', 'last_name', 'address', 'phone', 'messenger_id',)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
{
"phone": [
"This field is required."
],
"first_name": [
"This field is required."
],
"last_name": [
"This field is required."
],
"messenger_id": [
"This field is required."
],
"email": [
"This field is required."
],
"address": [
"This …Run Code Online (Sandbox Code Playgroud) 我正在运行 Ubuntu 16.04、Gunicorn、Nginx 的 Digital Ocean 上运行 Django 1.11(使用 Cookiecutter-Django 模板构建)服务器,并尝试使用 Redis 设置 Celery 任务。当我这样做时,该服务似乎可以正常工作并接收定期任务:
celery -A config worker -B -l debug
Run Code Online (Sandbox Code Playgroud)
任务被接收并接受,但它们不执行。为了测试,我发送了这个函数:
@shared_task(name="sum_two_numbers")
def add(x, y, **kwargs):
return x + y
Run Code Online (Sandbox Code Playgroud)
和:
add.delay(1,3)
Run Code Online (Sandbox Code Playgroud)
这是运行 Celery 的控制台的完整打印输出:
-------------- celery@myproject v4.1.0 (latentcall)
---- **** -----
--- * *** * -- Linux-4.4.0-112-generic-x86_64-with-Ubuntu-16.04-xenial 2018-02-19 23:18:12
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app: myproject:0x7f2cd60dc9e8
- ** ---------- .> transport: redis://127.0.0.1:6379//
- ** ---------- .> results: redis://localhost:6379/
- …Run Code Online (Sandbox Code Playgroud) 我想确保可以通过玩笑来调用HOC组件,但是我似乎jest.mock无法正常工作。我的HOC是这样的:
const withEntity = (
...args
) => {
const wrappedComponent = WrappedComponent => {
const innerComponent = ({ ...props }) => {
return (
<WrapperComponent
{...props}
>
<WrappedComponent />
</WrapperComponent>
);
};
innerComponent.propTypes = {
...
};
return innerComponent;
};
wrappedComponent.propTypes = {
...
};
return wrappedComponent;
};
withEntity.propTypes = {
...
};
export default withEntity;
Run Code Online (Sandbox Code Playgroud)
在一个单独的文件中,该withEntity函数的调用方式如下:
export const DoSomething = withEntity(...args)(MyComponent);
Run Code Online (Sandbox Code Playgroud)
然后,在该DoSomething组件的测试文件中,我试图导入该withEntity函数并对其进行模拟,如下所示:
import withEntity from "../../../shared/entity/higher_order_components/withEntity";
jest.mock("../../../shared/entity/higher_order_components/withEntity");
Run Code Online (Sandbox Code Playgroud)
但是,当我实际尝试运行测试时,出现以下错误:
? Test …Run Code Online (Sandbox Code Playgroud) 我有一个 React 组件类,我正在尝试测试单击行为,但在我的一生中,我无法实际运行模拟。这是组件类:
class Navbar extends Component {
constructor(props) {
super(props);
this.toggle = this.toggle.bind(this);
this.state = {
isOpen: false
};
}
toggle() {
this.setState({
isOpen: !this.state.isOpen
});
}
render() {
return (
<NavbarWrapper expand={this.props.expand}>
<NavbarBrand>{logo}</NavbarBrand>
<NavbarToggler onClick={this.toggle} collapsed={!this.state.isOpen}>
<NavbarIconBar className="top-bar" />
<NavbarIconBar className="middle-bar" />
<NavbarIconBar className="bottom-bar" />
</NavbarToggler>
<NavbarCollapsibleContent isOpen={this.state.isOpen} navbar>
{this.props.children}
</NavbarCollapsibleContent>
</NavbarWrapper>
);
}
}
Run Code Online (Sandbox Code Playgroud)
这是测试:
const wrapper = shallow(<Navbar {...props} />);
const toggler = wrapper.find(NavbarToggler);
const content = wrapper.find(NavbarCollapsibleContent);
// initial state
expect(content.props().isOpen).toBe(false);
// click to expand …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个简单的表单,通过询问表单中的ID来提取记录。
views.py
class Bill(models.Model):
"""
Represents a single purchase made by a customer at a business.
"""
business = models.ForeignKey(Businesses)
customer = models.ForeignKey(User, blank=True, null=True)
charge = models.ForeignKey(Charge, blank=True, null=True)
amount = models.IntegerField(verbose_name='Purchase amount (in cents)',
validators=[MinValueValidator(0)])
tip = models.IntegerField(verbose_name='Tip amount (in cents)',
validators=[MinValueValidator(0)])
comments = models.CharField(max_length=255, blank=True, null=True)
timestamp = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)
表格
从Django导入表单从django.forms导入ModelForm从transaction.models导入Bill
class BillSelectForm(ModelForm):
class Meta:
model = Bill
fields = ('id',)
Run Code Online (Sandbox Code Playgroud)
views.py
@login_required(login_url='/sign-in/')
def select_bill(request):
"""
Finds a bill based on its ID number.
"""
if request.method …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用TypeScript的组件库,并尝试将React中的无状态功能组件从ES6 / JavaScript转换为TypeScript。我想知道如何在传递函数参数的同时仍然能够在函数外部解构props的同时避免重复自己。
我的组件当前如下所示:
const allowedColors = {
warning: "fa fa-exclamation",
info: "fa fa-info",
success: "fa fa-check",
danger: "fa fa-minus-circle"
};
const AlertIcon = ({ className, color, ...props }) => (
<FontAwesomeIcon
{...props}
iconClassName={allowedColors[color]}
className={classNames(`alert-icon-${color}`, className)}
aria-hidden="true"
data-ut="alert-icon"
/>
);
AlertIcon.propTypes = {
className: PropTypes.string,
color: PropTypes.oneOf(Object.keys(allowedColors)).isRequired
};
Run Code Online (Sandbox Code Playgroud)
我将如何将其重构为TypeScript?
我试图通过一个API来执行一个非常简单的get请求,但是由于我遇到了身份验证错误,因此似乎没有提供这些选项,即使在邮递员上使用相同的身份验证令牌也是如此。这是代码:
import { HttpClient, HttpHeaders } from '@angular/common/http';
@Injectable()
export class UsersService {
private nearby_url: string = APP_CONFIG.apiEndpoint + '/users/closest/';
private me_url: string = APP_CONFIG.apiEndpoint + '/users/me/';
private conversations_url: string = APP_CONFIG.apiEndpoint + '/users/conversations/';
constructor(private http: HttpClient) { }
createAuthorizationHeader() {
var headers = new HttpHeaders();
// get auth token
// append auth token to headers
headers.append("Authorization", 'Token xxxxxxxxxxxyyyyyyyyyyyyzzzzzzzzz');
return headers
}
getPersonResponse(url): Observable<PersonResponse> {
const options = {
headers: this.createAuthorizationHeader()
};
return this.http.get(url, options)
.map((response: Response) => …Run Code Online (Sandbox Code Playgroud) django ×4
reactjs ×3
python ×2
angular ×1
celery ×1
django-forms ×1
enzyme ×1
forms ×1
ionic3 ×1
javascript ×1
jestjs ×1
jquery ×1
redis ×1
typescript ×1
ubuntu-16.04 ×1
unit-testing ×1