React.js:单击按钮时添加/删除输入字段:
当用户单击"添加"时,我希望添加新的输入字段.
name属性正在针对每个输入进行更改,通过增加中间的数字:
document-0-document document-1-document
我收到以下错误:
"TypeError:这是未定义的var arr = this.state.documents;"
我知道是什么创建了错误,但我没有找到修复.
HTML代码.
<fieldset class="fieldset">
<input type="file" name="document-0-document">
<div class="more-documents">
<input type="file" name="document-1-document">
<button data-reactid=".0.1">Add</button>
</div>
</fieldset>
Run Code Online (Sandbox Code Playgroud)
主要组件代码:
class DocumentsFieldSet extends Component{
constructor(props){
super(props);
this.state = {documents:[]}
}
add(i) {
var arr = this.state.documents;
arr.push(i);
this.setState({documents: arr});
}
eachDocument () {
return <DocumentInput key={i}/>
}
render (){
return (
<div>
{this.state.documents.map(this.eachDocument)}
<button onClick={this.add.bind()}>Add</button>
</div>
)
}
}
ReactDOM.render(<DocumentsFieldSet/>, document.querySelector ('.more- documents'))
Run Code Online (Sandbox Code Playgroud)
组件代码
class DocumentInput extends Component {
render() {
return <input …Run Code Online (Sandbox Code Playgroud) 我需要一些在内存和临时文件中使用文件操作的示例。
我在一个很好的示例/ tutorial中进行了大量搜索,发现只是基本的读/写/追加操作。
我需要了解如何在Django中读取保存(发布)完成之前上传的文件(图像)。
因为Django是Python,所以我认为最好先了解python。
我检查了有关Django的文档/示例,但是并不太清楚,因此我需要首先在phyton中而不是在Django中了解操作的工作方式,而不仅仅是复制和粘贴。
我知道如何使用ImageFields,上载默认操作,我只对使用“内存和临时文件”感兴趣。
我想结合使用此功能和裁剪功能。因此用户可以上传1,2,3 ..图片,并使用javascript裁剪脚本在隐藏字段中获取坐标。在用javascript模拟裁剪后,我向用户显示了裁剪的缩略图,比例看起来如何
用户可以改变主意,可以在保存之前编辑/更新或删除文件。
现在,根据文件大小,它可以保留在内存中或写入。
我有以下功能:
def create_act(user, verb, fk_name=None, fk_value=None):
fk = getattr(Action, fk_name)
action = Action(user=user, verb=verb, fk=fk_value)
action.save()
Run Code Online (Sandbox Code Playgroud)
行动是一个阶级.该类有多个属性,我不知道在哪个属性将得到一个值.
我得到属性名称动态.
我希望kwarg fk成为集体诉讼的实际属性.FK可以是账户或公司.
class Action(models.Model):
account = models.ForeignKey(Account, blank=True, null=True, related_name='activity', on_delete=models.CASCADE)
company = models.ForeignKey(Company, blank=True, null=True, related_name='activity', on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)
我在论坛上找到了一些答案,但与我无关,或者在python中.我在其他网站上看到了一些使用eval的建议,但eval并不安全.
在Model我设置字段的最大长度:
short_description = models.CharField(max_length=405)
Run Code Online (Sandbox Code Playgroud)
在ModelForm小部件属性中,我设置了最小长度和最大长度:
class ItemModelForm(forms.ModelForm):
class Meta:
model = Item
fields = ['name', 'short_description', 'description']
widgets = {
'name': TextInputWidget(attrs={'placeholder': 'Name*'}),
'short_description': TextareaWidget(attrs={'minlength': 200, 'maxlength': 400})
Run Code Online (Sandbox Code Playgroud)
}
HTML 中的问题是 minlegth 来自小部件,但 maxlength 仍然取自模型(405 而不是 400)。
我希望小部件属性覆盖模型属性。
我有一个 bash 函数,用于检查 PostgreSQL 数据库是否已存在。
我捕获输出。如果数据库存在,PostgreSQL 将返回数据库名称作为响应。
function is_database() {
local database=$1
local output=$(sudo -u postgres psql -c "SELECT datname FROM pg_catalog.pg_database WHERE datname=\"$database\";")
if [[ $output = *"${1}"* ]]
then
return 0
else
return 1
fi
}
is_database test
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
column "test" does not exist
Run Code Online (Sandbox Code Playgroud)
我不是在搜索表,而是在搜索数据库。
我有一个文本,我想知道是否所有或大于50%的百分比都是大写的.
DOFLAMINGO与触摸屏lorem ipsum
我尝试使用正则表达式(在这里找到一个解决方案):
rx = re.compile(r"^([A-Z ':]+$)", re.M)
upp = rx.findall(string)
Run Code Online (Sandbox Code Playgroud)
但这找到所有上限,我不知道是否所有或超过50%(包括所有)是大写的?
我想只编号字母(所以没有数字,空格,新行等)
我有一个产品模型、公司模型的外键、用户的单键。
我重写调度(方法)来检查用户是否有权编辑对象(产品)。
我正在尝试优化对数据库的查询,因为其中一些是重复的。
def dispatch(self, request, *args, **kwargs):
obj = self.get_object()
if obj.company.user != request.user:
raise PermissionDenied
else:
print('ok')
return super().dispatch(request, *args, *kwargs)
Run Code Online (Sandbox Code Playgroud)
查询产品
obj = self.get_object()
Run Code Online (Sandbox Code Playgroud)
向公司查询和向用户查询两次
if obj.company.user != request.user:
Run Code Online (Sandbox Code Playgroud)
再次查询产品
return super().dispatch(request, *args, *kwargs)
Run Code Online (Sandbox Code Playgroud)
如何优化和删除重复查询?
我有一个 python 应用程序,其中有一个包含多个 url 的变量。
此时我使用这样的东西:
for v in arr:
cmd = 'youtube-dl -u ' + email + ' -p ' + password + ' -o "' + v['path'] + '" ' + v['url']
os.system(cmd)
Run Code Online (Sandbox Code Playgroud)
但这样我就只能下载一个又一个视频。我怎样才能同时下载 3 个视频?(不是来自 youtube,所以没有播放列表或频道)
我不需要在Python中使用多线程,而是多次调用youtube-dl,分割数组。所以从Python的角度来看可以在线程上。
yield如果没有发生,我想在生成器内引发错误。下面是我的问题的一个非常简单的示例:
def test1():
for i in range(1, 28):
if i % 5 == 0:
yield str(i)
raise CustomEXception
def test2(x):
for i in range(1, 38):
if i % x == 0:
yield str(i)
raise CustomEXception
a = test1()
b = test2()
Run Code Online (Sandbox Code Playgroud)
实际上,test1和正在循环数据、搜索匹配项、操作数据 和。如果没有产生数据,则会出现错误。test2yield
for w,q in itertools.products(a, b):
try:
print(w + q)
# do some more operation with w, q
except CustomException:
# do some more checking
Run Code Online (Sandbox Code Playgroud)
生成器的结果用于创建笛卡尔积。
问题是这不起作用,引发了异常,之前没有产生任何结果。
我从源代码安装了不同的 python 版本,并为它们创建了虚拟环境,并在每个项目的设置中设置了它们。操作系统 (SuSe Leap) 附带 python 3.6。
如何在 VS Code 中设置每个项目的 PYTHONPATH?,我不想修改通用路径。
在设置中设置虚拟环境后,可以使用 python 内置函数,但不会在正确的路径中查找第三方包。
我已经pythonPath在 python 环境中设置了解释器,但在包导入方面仍然存在一些问题,并且我没有找到 PYTHONPATH 的变量?
python ×6
django ×3
python-3.x ×3
arguments ×1
bash ×1
django-forms ×1
django-orm ×1
ecmascript-6 ×1
function ×1
generator ×1
javascript ×1
linux ×1
postgresql ×1
reactjs ×1
string ×1
youtube-dl ×1