class permForm(forms.Form):
def __init__(self, data=None, **kwargs):
super(permForm, self).__init__(data, **kwargs)
for item in list(AdminMenu.objects.filter(parent_id=0)):
self.fields['menu_%d' % item.id] = forms.BooleanField(label=item.title)
for childitem in list(AdminMenu.objects.filter(parent_id=item.id)):
arr=[]
arr.append(str(item.id))
arr.append(str(childitem.id))
self.fields['menu_%s' % '_'.join(arr)] = forms.BooleanField(label=childitem.title)
Run Code Online (Sandbox Code Playgroud)
这将返回
类别:复选框
添加类别:复选框
列表类别:复选框
食物:复选框
添加Fooditems:复选框
列出Fooditem:复选框
表格:复选框
添加表格:复选框
列表:复选框
用户:复选框
查看用户:复选框
如何将其显示如下
类别:复选框
添加类别:复选框
列表类别:复选框
食物:复选框
添加Fooditems:复选框
列出Fooditem:复选框
表格:复选框
添加表格:复选框
列表:复选框
用户:复选框
查看用户:复选框
我想让父母分类标签大胆地从孩子那里辨认出来.可能?我不想使用硬编码的形式
我只想列出用户获得许可,所以我只制作了一个自定义模型,如下所示
from django.db import models
from django.contrib.auth.models import Permission,User
class Mycustomuser(User):
class Meta:
permissions = (
('users','users'),
('view_user', 'View user'),
)
Run Code Online (Sandbox Code Playgroud)
在视图中我只是简单地调用
items=Mycustomuser.objects.all()
Run Code Online (Sandbox Code Playgroud)
它仅返回 4 的用户 ID。
我这样做是因为我使用 django Guardian 获得了以下许可
task = MyCustomuser.objects.create()
joe = User.objects.get(username__exact='admin')
assign('view_category', joe, task)
Run Code Online (Sandbox Code Playgroud)
现在我想在调用 MyCustomuser 时检查该权限。
我只是尝试在shell脚本中自动化laravel进程,如(Start,Stop).要启动laravel服务器,我在shell文件中使用php artisan serve.
我试图使用命令停止laravel服务器.但我很奇怪,我没有看到任何命令来停止服务器.我曾经使用Ctl + C来停止服务器或关闭命令提示符.
1.任何laravel命令停止服务器?
我怎么能阻止他们呢?我没有任何命令提示运行此进程退出服务器.
所以,我对语言表(播种者LanguageTableSeeder)如下:
DB::table('languages')->insert([
'name' => 'English',
'flag' => '',
'abbr' => 'en',
'script' => 'Latn',
'native' => 'English',
'active' => '1',
'default' => '1',
]);
$this->command->info('Language seeding successful.');
Run Code Online (Sandbox Code Playgroud)
但这导致数据库中created_atand updated_at字段为Null。我抬头一看运前UsersTabeSeeder和改变了我的LanguageTableSeeder马赫完全一样的格式:
DB::table('languages')->delete();
$languages = [
[
'name' => 'English',
'flag' => '',
'abbr' => 'en',
'script' => 'Latn',
'native' => 'English',
'active' => '1',
'default' => '1',
],
];
foreach ($languages as $language){
Language::create($language);
}
Run Code Online (Sandbox Code Playgroud)
这也造成了created_at和updated_at字段为空这是奇怪的,因为当我在用户表中我的数据查找基础,这些created_at和updated_at …
我想找出不同时区2次之间的差异。我的服务器基于悉尼,我想找到给定时间与当前时间(基于珀斯)之间的时差(以秒为单位)
echo $tz = Carbon::now('Australia/Perth');
echo "<br>";
$local='2017-04-11 12:39:50';
echo $emitted = Carbon::parse($local);
echo "<br>";
echo "diff from carbon->";
echo $diff = $tz->diffInSeconds($emitted);
echo "<br> diff from Normal->";
echo $diff1 = strtotime($tz) - strtotime($emitted);
Run Code Online (Sandbox Code Playgroud)
当我使用diffInSeconds它时,相差2小时,看起来本地化没有考虑,但strtotime($tz) - strtotime($emitted)给出了理想的结果。我错过了什么吗?
当我尝试php artisan queue:table
它给了我以下错误
[InvalidArgumentException]
A CreateJobsTable migration already exists.
Run Code Online (Sandbox Code Playgroud)
这是因为我已经将迁移命名CreateJobsTable为其他目的.我无法重命名此表和迁移.有没有办法将迁移重命名为CreateJobsQueueTable或某些相关的东西?
我们可以使用'queue:table'重命名artisan创建的jobs表吗?
我有以下sql
select * from bids where deleted_at is null
and publication_date <= now() and open_date >= now()
Run Code Online (Sandbox Code Playgroud)
我想用ORM写它
$bids = Bid::where('publication_date','<=','now()')->where('open_date','>=','now()')->get();
Run Code Online (Sandbox Code Playgroud)
它不起作用,然后重写如下
$bids=DB::select(DB::raw('select * from bids where deleted_at is null and publication_date <= now() and open_date >= now()'));
Run Code Online (Sandbox Code Playgroud)
如何在ORM上面写上面的查询,我认为now()是给出了问题
我需要用于后续Crypt::encrypt()和Crypt::decrypt()调用的密钥,但仅限于当前请求.
Crypt::setKey('1');
$pin_code = Crypt::encrypt($pin_codes[$key]);
Run Code Online (Sandbox Code Playgroud)
//它进行加密然后自动注销
可能是什么问题?
我需要在按钮标签上有令人敬畏的字体图像.所以我不能用 <input type="submit">
<button type="submit" class="btn btn-success">
<i class="fa-trash"></i> delete
</button>
Run Code Online (Sandbox Code Playgroud)
在laravel上查看
{{ Form::open(array('method'
=> 'DELETE', 'route' => array('admin.states.destroy', $value->id))) }}
{{ Form::submit(HTML::decode(FA::icon('trash')), array('class'
=> 'actions-line icon-trash','onclick'=>'return confirm("Are you sure?")')) }}
{{ Form::close() }}
Run Code Online (Sandbox Code Playgroud)
这不是在按钮内部渲染html
什么是正确的方法?
我正在尝试使用 selenium web driver 和 node js 自动化几个页面。我能够登录,但登录后我想使用由网络驱动程序启动的相同会话,以便我可以在会话保护页面上进行自动测试。这是我的尝试
async function login(){
Let d = await new Builder()
.forBrowser('chrome')
.build();
await d.get('https://demo.textdomain.com/')
await d.findElement(By.id('username')).sendKeys('admin ')
await d.findElement(By.id('password')).sendKeys('admin');
await d.findElement(By.css('button[type="submit"]')).click();
d.getPageSource().then(function(content) {
if(content.indexOf('Welcome text') !==-1 ) {
console.log('Test passed');
console.log('landing page');
d.get('https://demo.textdomain.com/landingpage') //this is still going to login page as i cannot use the previous session
} else {
console.log('Test failed');
return false;
}
//driver.quit();
});
}
login();
Run Code Online (Sandbox Code Playgroud)
我登录后不小心丢弃了浏览器。
laravel ×7
php ×5
django ×2
eloquent ×2
laravel-4 ×2
automation ×1
blade ×1
datetime ×1
encryption ×1
extend ×1
font-awesome ×1
forms ×1
javascript ×1
label ×1
laravel-5 ×1
laravel-5.4 ×1
mcrypt ×1
mysql ×1
permissions ×1
php-carbon ×1
promise ×1
selenium ×1
sh ×1
terminal ×1
webdriver ×1